我正在尝试将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中,这样它就可以适用于所有列,那么是否有一种方法将其转换为样式?谢谢。
编辑---------
如果我按ElementName绑定,它就能正常工作:
<DataTrigger Binding="{Binding IsReadOnly, ElementName=stupid}" Value="True">
<Setter Property="Foreground" Value="Red" />
</DataTrigger>
然而,如果可能的话,我希望这更加通用。再次感谢。
DataGridTextColumn
元素的背景色,即它的TextBlock
。DataGridTextColumn
没有Background
属性。 - Sloth Armstrong