如何基于多条件WPF更改datagridcell的背景?
How to change Background of datagridcell based on multiple condition WPF?
我有带有一些条件行的数据网格。我想如果我 select 数据网格中的特定行,selected 颜色将根据我的记录值而改变。
假设我有 Students
和 IsDropOut
标记的记录。
然后如果我点击select学生记录,所选行将根据IsDropOut
值改变颜色。如果它是 true
,它将 selected 行背景设置为红色,如果 IsDropOut
是 false
,它将 selected 行背景设置为绿色。
也许这样
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridCell}">
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Path=DataGridCell.IsSelected}" Value="True" />
<Condition Binding="{Binding Path=IsDropOut}" Value="true" />
</MultiDataTrigger.Conditions>
<Setter Property="Background" Value="red" />
</MultiDataTrigger>
</Style.Triggers>
</Style>
</DataGrid.Resources>
但是那个代码是行不通的。那怎么办呢?有人有建议吗?
试试这个:
<Style TargetType="DataGridCell">
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="True" />
<Condition Property="IsDropOut" Value="true" />
</MultiTrigger.Conditions>
<Setter Property="Background" Value="Red" />
</MultiTrigger>
</Style.Triggers>
</Style>
我终于解决了这个问题..谢谢你的想法..
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Path=IsDropOut}" Value="True" />
<Condition Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource Self}}" Value="True" />
</MultiDataTrigger.Conditions>
<Setter Property="Background" Value="Red" />
<Setter Property="Foreground" Value="White" />
</MultiDataTrigger>
我有带有一些条件行的数据网格。我想如果我 select 数据网格中的特定行,selected 颜色将根据我的记录值而改变。
假设我有 Students
和 IsDropOut
标记的记录。
然后如果我点击select学生记录,所选行将根据IsDropOut
值改变颜色。如果它是 true
,它将 selected 行背景设置为红色,如果 IsDropOut
是 false
,它将 selected 行背景设置为绿色。
也许这样
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridCell}">
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Path=DataGridCell.IsSelected}" Value="True" />
<Condition Binding="{Binding Path=IsDropOut}" Value="true" />
</MultiDataTrigger.Conditions>
<Setter Property="Background" Value="red" />
</MultiDataTrigger>
</Style.Triggers>
</Style>
</DataGrid.Resources>
但是那个代码是行不通的。那怎么办呢?有人有建议吗?
试试这个:
<Style TargetType="DataGridCell">
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="True" />
<Condition Property="IsDropOut" Value="true" />
</MultiTrigger.Conditions>
<Setter Property="Background" Value="Red" />
</MultiTrigger>
</Style.Triggers>
</Style>
我终于解决了这个问题..谢谢你的想法..
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Path=IsDropOut}" Value="True" />
<Condition Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource Self}}" Value="True" />
</MultiDataTrigger.Conditions>
<Setter Property="Background" Value="Red" />
<Setter Property="Foreground" Value="White" />
</MultiDataTrigger>