DataGridTextColumn
如果它是只读的,我正在尝试将它的背景颜色设置为另一种颜色。我正在使用以下代码这样做:
<DataGridTextColumn Header="Test" IsReadOnly="True">
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsReadOnly, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type DataGridTextColumn}}}" Value="True">
<Setter Property="Background" Value="LightGreen"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
我没有运气,但是删除触发器会导致背景始终为浅绿色。数据触发器绑定有问题吗?我对 WPF 比较陌生,但这是我可以在网上找到的。理想情况下,这将在 App.XAML 中,因此它将适用于所有列,例如 this,那么是否有办法将其转换为样式?谢谢。
编辑 - - - - -
如果我通过 ElementName 绑定它可以工作:
<DataTrigger Binding="{Binding IsReadOnly, ElementName=stupid}" Value="True">
<Setter Property="Foreground" Value="Red" />
</DataTrigger>
但是,如果可能的话,我希望这更通用。再次感谢。