Csharp/C#教程:使用触发器绑定WPF Datagrid单元格背景颜色分享


使用触发器绑定WPF Datagrid单元格背景颜色

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

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

       

这会更新文本内容背景颜色,但这只是单元格中心的一个小区域。 我希望整个单元格更新它的背景颜色,而不仅仅是textblock属性。

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

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

如果您希望将此dataTrigger应用于dataGrid中的所有单元格,请在DataGrid CellStyle上设置样式,否则您也可以在特定的DataGridTextColumn CellStyle上执行该操作。

数据网格

       

DataGridTextColumn

           

其他人可以从代码隐藏方法中的WPF“动态数据触发器”中受益

此代码允许用户使用所需的指定文本突出显示数据行。

上述就是C#学习教程:使用触发器绑定WPF Datagrid单元格背景颜色分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

  var st = new Style(); st.TargetType = typeof(DataGridRow); var RedSetter = new Setter( DataGridRow.BackgroundProperty, Brushes.Red); var dt = new DataTrigger(){ Value = CurrentTextToFilter, Binding = new Binding("Value") }; dt.Setters.Add(RedSetter); st.Triggers.Add(dt); XDG.RowStyle = st; PropChanged("MainDataCollection"); 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1019490.html

(0)
上一篇 2022年1月4日
下一篇 2022年1月4日

精彩推荐