我们假设我有一列WPF
DataGrid
:
<DataGridCheckBoxColumn Binding="{Binding myProperty}" Header="My Property" >
<DataGridCheckBoxColumn.CellStyle>
<Style TargetType="DataGridCell">
<Style.Triggers>
<DataTrigger Binding="{Binding myProperty}" Value="1">
<Setter Property="Background" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGridCheckBoxColumn.CellStyle>
</DataGridCheckBoxColumn>
这可以按照您的预期运行:如果基础值为Red
1
为了避免为所有列编写所有这些(我有几个),我想将样式作为资源,因此可以重复使用,如下所示:
<Window.Resources>
<Style TargetType="DataGridCell" x:Key="styleCheckboxRed">
<Style.Triggers>
<DataTrigger Binding="?????" Value="1">
<Setter Property="Background" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
<!-- other stuff... -->
<DataGridCheckBoxColumn Binding="{Binding myProperty}" Header="My Property" CellStyle="{StaticResource styleCheckboxRed}" />
但正如您所看到的,我不知道如何在DataTrigger上设置绑定以使其适用于任何通用列...我可以以某种方式引用Column自己的绑定吗?我使用RelativeSource进行了各种尝试,但我不知道正确的方法(如果确实有一个)。有什么想法吗?