【问题标题】:Change color of CheckboxColumn if checked如果选中,则更改 CheckboxColumn 的颜色
【发布时间】:2012-04-03 09:05:12
【问题描述】:

搜索了很多关于这个问题,但没有找到答案,解决了它。

我在 WPF 数据网格中有以下 CheckboxColumn:

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

变量erledigt 包含0 或1。现在我想要,如果选中复选框,则单元格背景为绿色。 绝望地寻找一个检查的财产。我该如何管理?

【问题讨论】:

  • 我会推荐一个布尔数据类型而不是某种数字...

标签: c# wpf xaml datagrid checkbox


【解决方案1】:

您可以将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">

【讨论】:

    猜你喜欢
    • 2017-01-08
    • 2021-02-01
    • 2023-03-23
    • 1970-01-01
    • 2014-05-17
    • 1970-01-01
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    相关资源
    最近更新 更多