搜索了很多关于这个问题,但从未找到答案,解决了这个问题。
我在WPF数据网格中有以下CheckboxColumn:
<DataGridCheckBoxColumn Header="Erledigt" Binding="{Binding Path=erledigt}" />
变量erledigt
包含0或1.现在我想,如果选中了复选框,则cellbackground为绿色。
绝望地搜索了一个托运物业。我该如何管理?
答案 0 :(得分:1)
您可以在CellStyle
上使用DataTrigger
的列中添加erledigt
,您不需要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">