我希望 WPF 数据网格单元格的背景颜色在内容被修改后改变颜色。每个单元格后面都有一个 ViewModel 对象,该对象包含以下属性 - Value、OriginalValue 和 Modified。当用户编辑单元格内容时,这会通过数据绑定自动触发 Amount 属性。然后,此属性设置器将其与原始值进行检查,并将布尔 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 属性,而不是仅设置当前文本块的背景颜色?