WPF Datagrid根据值触发行颜色

我有一个包含数据网格的WPF应用程序。 datagrid绑定到我的对象OrderBlock,它包含一个类型为Order的List。

<DataGrid DataContext="{Binding OrderBlock}" Name="dataGridOrdersGood" ItemsSource="{Binding Orders}" 

这工作正常,并在我的数据网格中很好地显示。 我的列表中有一个属性(StatusGood)虽然我想显示为一个combobox,其中只有两个值,“发送”或“保持”。

如果combobox中的值是“保持”,我希望该行变成不同的颜色。 理想情况下使用从silverlight到黄色的线性渐变。 我已经尝试了下面的代码 – 实际上只是试图将行变为红色,但没有任何反应。 我无法看到下面的代码有什么问题。 触发器部分非常接近下面代码的底部。 我是WPF的新手,目前正在努力解决这个问题。 下面的代码主要来自一个非常好的post,可以在这里找到, http://www.codeproject.com/Articles/586132/WPFvalsGrid-Custommization-using-Style-and-Templa

                                                                  

一如既往,任何帮助都会很棒。 谢谢M.

您是否需要更改DataGridRow的行为,或者是否足以改变样式?

如果你需要改变基于属性的行突出显示,你应该能够使用更简单的Style ,如下所示:

         

通过将样式用作RowStyle属性的StaticResource ,您应该能够在DataGrid根据需要应用样式:

  

编辑:

如果要保留样式的其余部分并使用控件模板,可以将DataTrigger放在ControlTemplate.Triggers ,还必须提供TargetName属性,以指定希望触发器操作的元素,所以使用我上面的画笔和你的初始代码:

   

其中DGR_Border是您使用现有渐变给出边框的名称。