以编程方式更改WPF DataGrid单元格背景(不使用XAML)

时间:2014-02-08 19:06:40

标签: c# wpf wpfdatagrid

我知道这个WPF单元格背景问题已被多次覆盖,但我见过的所有解决方案都使用xaml(参见:Change DataGrid cell colour based on values

你可能会想,为什么没有xaml?如果你有静态着色规则,Xaml很好,我不这样做。 (我的应用程序是一个电子求解器,它将突出显示由网格运算符定义的某些安全限制之上的值)

好吧,我没有静态规则来为单元格着色(如果输入> 0.5返回红色) 因为着色规则是由用户在运行时定义的。

有没有办法在不使用任何xaml的情况下实现单元格样式?

现在我使用的是Windows窗体数据网格嵌入WPF UI中的Windows窗体主机(丑陋但有效)我真的很想拥有WPF数据网格,因为它的性能要好得多。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

这仍然是正确的数据绑定方案,我认为没有理由评估视图的代码隐藏代码中的任何内容。关键是分色计算和它的视觉表现。

  1. 将颜色切换逻辑封装在行的ViewModel属性中,并在颜色发生变化时进行适当的通知更改。
  2. 创建一个转换器,它接受您的ViewModel属性类型即。字符串并创建了一个刷子
  3. 使用在2中创建的转换器将单元格内容的Background属性绑定到行的属性。