![](/img/trans.png)
[英]Add DataGrid checkboxcolumn with different values in different rows
[英]Different selection colors for different DataGrid rows
我正在尝试根据行的类型以及是否选中该行,为datagrid中的不同行设置不同的颜色:
<Style TargetType="DataGridCell" x:Key="ActiveCellStyle">
<Setter Property="Foreground" Value="Black"/>
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Type}" Value="0"/>
<Condition Property="IsSelected" Value="False"/>
</MultiDataTrigger.Conditions>
<Setter Property="Background" Value="#FFDFE6ED"/>
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Type}" Value="0"/>
<Condition Property="IsSelected" Value="True"/>
</MultiDataTrigger.Conditions>
<Setter Property="Background" Value="#FF6CAFF1"/>
</MultiDataTrigger>
...
</Style.Triggers>
</Style>
运行此命令时,我收到ArgumentException:键不能为null。
我怎样才能解决这个问题?
使用MultiTrigger
使用Property
,使用MultiDataTrigger
使用Binding
,则不能将它们组合在一起。 所以改变
<Condition Property="IsSelected"
至
<Condition Binding="{Binding RelativeSource={RelativeSource Self},
Path=IsSelected}"
它应该工作
<Style TargetType="DataGridCell" x:Key="ActiveCellStyle">
<Setter Property="Foreground" Value="Black"/>
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Type}" Value="0"/>
<Condition Binding="{Binding RelativeSource={RelativeSource Self},
Path=IsSelected}"
Value="False"/>
</MultiDataTrigger.Conditions>
<Setter Property="Background" Value="#FFDFE6ED"/>
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Type}" Value="0"/>
<Condition Binding="{Binding RelativeSource={RelativeSource Self},
Path=IsSelected}"
Value="True"/>
</MultiDataTrigger.Conditions>
<Setter Property="Background" Value="#FF6CAFF1"/>
</MultiDataTrigger>
</Style.Triggers>
</Style>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.