将WPF Datagrid单元格背景色与触发器绑定

新西兰詹姆斯

我希望WPF数据网格单元格的背景颜色在修改内容后更改颜色。每个单元格后面都有一个ViewModel对象,该对象包含以下属性-值,原始值和已修改。当用户编辑单元格内容时,这将通过数据绑定自动触发Amount属性。然后,此属性设置器将其与原始值进行比较,并将boolean Modified属性分别设置为true或false,并通知这些属性的绑定进行更新。

到目前为止,我已经在DataGridTextColumn的ElementStyle属性上使用Style实现了部分结果,如下所示

<Style x:Key="DataGridTextStyle" TargetType="{x:Type TextBlock}">
    <Style.Triggers>
        <DataTrigger Binding="{Binding Path=MyViewModel.Modified}" Value="True">
            <Setter Property="Background" Value="Yellow"/>
        </DataTrigger>
    </Style.Triggers>
</Style>

这将更新文本内容的背景色,但这只是单元格中心的一小部分。我希望整个单元格更新其背景色,而不仅仅是textblock属性。

我可以修改上述触发器以在可视树中向上搜索以找到父DataGridCell并在其上设置Background属性,而不是仅设置当前文本块的背景颜色吗?

罗希特·瓦茨

您需要设置CellStyle目标DataGridCell而不是TextBlock

如果希望将此dataTrigger应用于dataGrid中的所有单元格,则将样式设置为on,DataGrid CellStyle否则也可以对特定样式进行设置DataGridTextColumn CellStyle

数据网格

     <DataGrid>
        <DataGrid.CellStyle>
            <Style TargetType="DataGridCell">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding MyViewModel.Modified}"
                                 Value="True">
                        <Setter Property="Background" Value="Yellow"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </DataGrid.CellStyle>
    </DataGrid>

DataGridTextColumn

     <DataGrid>
        <DataGrid.Columns>
            <DataGridTextColumn Binding="{Binding Name}">
                <DataGridTextColumn.CellStyle>
                    <Style TargetType="DataGridCell">
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding MyViewModel.Modified}" 
                                         Value="True">
                                <Setter Property="Background" Value="Yellow"/>
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </DataGridTextColumn.CellStyle>
            </DataGridTextColumn>
        </DataGrid.Columns>
    </DataGrid>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何根据单元格值更改DataGrid单元格背景色

来自分类Dev

Google表格脚本->如何基于单元格触发器将行作为值复制到另一个选项卡,然后清除触发器单元格?

来自分类Dev

设置DataGrid单元格背景色WPF

来自分类Dev

WPF DataGrid触发单元格内容

来自分类Dev

WPF将DataGridTextColumn的背景色按行绑定

来自分类Dev

如果单元格包含特定值,则WPF DataGrid更改单元格背景

来自分类Dev

WPF DataGrid:使用触发器更改单元格前景色

来自分类Dev

WPF根据内容更改单元格背景色

来自分类Dev

WPF:在运行时动态更改DataGrid单元格/行背景色

来自分类Dev

在单元格值中绑定WPF DataGrid列标题文本

来自分类Dev

将单元格背景色设置为其包含的RGB值。怎么样?

来自分类Dev

如何将选定的WPF DataGrid单元格的值设置为上面的单元格的值?

来自分类Dev

WPF Datagrid PageDown将单元格的滚动设置为像素,制表位设置为false

来自分类Dev

Google表格脚本->如何基于单元格触发器将行作为值复制到另一个选项卡,然后清除触发器单元格?

来自分类Dev

WPF开关与触发器绑定

来自分类Dev

WPF DataGrid绑定后如何修改单元格

来自分类Dev

WPF DataGrid单元格通过父控件中的数据进行绑定

来自分类Dev

如何使用两个按钮将表格单元格(td)的背景色设置为不同的颜色?

来自分类Dev

WPF DataGrid可编辑单元格,将Items定向放置

来自分类Dev

wpf datagrid单元格背景色未完全填充

来自分类Dev

Excel:将单元格的背景色更改为在该单元格中写入的RGB颜色

来自分类Dev

WPF:DataGridRow IsMouseOver True触发器应在完整行上设置背景,并暂时禁用在单个单元格上设置的背景

来自分类Dev

选择单元格时,按钮的背景色将改变,然后重新显示

来自分类Dev

WPF将DataGridTextColumn的背景色按行绑定

来自分类Dev

WPF根据内容更改单元格背景色

来自分类Dev

在单元格值中绑定WPF DataGrid列标题文本

来自分类Dev

根据其值(C#,WPF)设置DataGrid单元格背景

来自分类Dev

在 wpf 数据网格单元格中绑定背景值

来自分类Dev

如何为datagrid wpf的单个单元格设置背景而不是单行?

Related 相关文章

  1. 1

    如何根据单元格值更改DataGrid单元格背景色

  2. 2

    Google表格脚本->如何基于单元格触发器将行作为值复制到另一个选项卡,然后清除触发器单元格?

  3. 3

    设置DataGrid单元格背景色WPF

  4. 4

    WPF DataGrid触发单元格内容

  5. 5

    WPF将DataGridTextColumn的背景色按行绑定

  6. 6

    如果单元格包含特定值,则WPF DataGrid更改单元格背景

  7. 7

    WPF DataGrid:使用触发器更改单元格前景色

  8. 8

    WPF根据内容更改单元格背景色

  9. 9

    WPF:在运行时动态更改DataGrid单元格/行背景色

  10. 10

    在单元格值中绑定WPF DataGrid列标题文本

  11. 11

    将单元格背景色设置为其包含的RGB值。怎么样?

  12. 12

    如何将选定的WPF DataGrid单元格的值设置为上面的单元格的值?

  13. 13

    WPF Datagrid PageDown将单元格的滚动设置为像素,制表位设置为false

  14. 14

    Google表格脚本->如何基于单元格触发器将行作为值复制到另一个选项卡,然后清除触发器单元格?

  15. 15

    WPF开关与触发器绑定

  16. 16

    WPF DataGrid绑定后如何修改单元格

  17. 17

    WPF DataGrid单元格通过父控件中的数据进行绑定

  18. 18

    如何使用两个按钮将表格单元格(td)的背景色设置为不同的颜色?

  19. 19

    WPF DataGrid可编辑单元格,将Items定向放置

  20. 20

    wpf datagrid单元格背景色未完全填充

  21. 21

    Excel:将单元格的背景色更改为在该单元格中写入的RGB颜色

  22. 22

    WPF:DataGridRow IsMouseOver True触发器应在完整行上设置背景,并暂时禁用在单个单元格上设置的背景

  23. 23

    选择单元格时,按钮的背景色将改变,然后重新显示

  24. 24

    WPF将DataGridTextColumn的背景色按行绑定

  25. 25

    WPF根据内容更改单元格背景色

  26. 26

    在单元格值中绑定WPF DataGrid列标题文本

  27. 27

    根据其值(C#,WPF)设置DataGrid单元格背景

  28. 28

    在 wpf 数据网格单元格中绑定背景值

  29. 29

    如何为datagrid wpf的单个单元格设置背景而不是单行?

热门标签

归档