如果选中,请更改CheckboxColumn的颜色

本文关键字:CheckboxColumn 颜色 如果 | 更新日期: 2023-09-27 18:28:07

搜索了很多关于这个问题的信息,但一直没有找到答案,这就解决了它

我在WPF数据网格中得到了以下复选框列:

<DataGridCheckBoxColumn Header="Erledigt" Binding="{Binding Path=erledigt}"  />

变量erledigt包含0或1。现在我想,如果复选框被选中,单元格背景是绿色的。绝望地寻找一处经过检查的房产。我该如何处理?

如果选中,请更改CheckboxColumn的颜色

您可以将CellStyle添加到只在erledigt上使用DataTrigger的列中,而不需要IsChecked属性本身。使用ElementStyleEditingElementStyle,您应该能够在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">