如果选中,请更改CheckboxColumn的颜色
本文关键字:CheckboxColumn 颜色 如果 | 更新日期: 2023-09-27 18:28:07
搜索了很多关于这个问题的信息,但一直没有找到答案,这就解决了它
我在WPF数据网格中得到了以下复选框列:
<DataGridCheckBoxColumn Header="Erledigt" Binding="{Binding Path=erledigt}" />
变量erledigt
包含0或1。现在我想,如果复选框被选中,单元格背景是绿色的。绝望地寻找一处经过检查的房产。我该如何处理?
您可以将CellStyle
添加到只在erledigt
上使用DataTrigger
的列中,而不需要IsChecked
属性本身。使用ElementStyle
和EditingElementStyle
,您应该能够在IsChecked
上添加一个普通的Trigger
,因为样式应该是应用于CheckBoxes
的样式,但是范围也将限于CheckBoxes
本身,而不是单元格。
<DataGridCheckBoxColumn.CellStyle>
<Style TargetType="DataGridCell">
<Style.Triggers>
<DataTrigger Binding="{Binding erledigt}" Value="1">
<Setter Property="Background" Value="LightGreen"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGridCheckBoxColumn.CellStyle>
您也可以从单元格级别绑定到CheckBox.IsChecked
,这样做的效果是颜色将立即更改,而不是在提交更改后更改,然后影响绑定属性。为此,将CellStyle
中的触发器更改为:
<DataTrigger Binding="{Binding Content.IsChecked,
RelativeSource={RelativeSource Self}}"
Value="True">