.net 如果记录发生更改,如何更改DataGrid行颜色

.net 如果记录发生更改,如何更改DataGrid行颜色,.net,wpf,xaml,datagrid,inotifypropertychanged,.net,Wpf,Xaml,Datagrid,Inotifypropertychanged,如果可能的话,我想通过装订来实现以下目标 我有一个绑定到ObservableCollection的WPF数据网格 public class Product { public string Code { get; set; } public string Desc { get; set; } public bool Updated { get; set; } } My grids DataContext设置为可观察集合 我想要实现的是 当用户更改datagrid中的一行

如果可能的话,我想通过装订来实现以下目标

我有一个绑定到ObservableCollection的WPF数据网格

public class Product
{
    public string Code { get; set; }
    public string Desc { get; set; }
    public bool Updated { get; set; }
}
My grids DataContext设置为可观察集合

我想要实现的是

  • 当用户更改datagrid中的一行时,产品的更新字段将更改为“true”
  • 因此,我可以以某种方式绑定网格的行颜色以显示不同的颜色,这将向用户指示该行尚未保存
我认为我需要实现INotifyPropertyChanged来实现这一点,但不确定具体如何实现。此外,网格上是否有绑定属性以确保在UI上所做的更改更新备份存储

干杯

  • 您的
    产品
    类应该更新到
    更新的
    的绑定

    您还可以将所有属性的设置器更改为将
    Updated
    设置为
    true

  • 您可以在属性上触发:

    <DataGrid.RowStyle>
        <Style TargetType="DataGridRow">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Updated}" Value="True">
                    <Setter Property="Background" Value="Orange"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DataGrid.RowStyle>
    
    
    

  • 还有更多的属性滥用,如果你有一个事件,就使用事件……好吧,如果我在网格中有100个项目,我如何“侦听”可能由任何项目引发的事件。如何连接能够检测备份存储中任何更改的处理程序?这是一个问题,现有的WPF功能只支持属性,如果您希望保持设计整洁并处理事件,您可能需要使用其他库,如。它比.NET中的更灵活。@RemotecUk-您可以使用从ObservableCollection派生的集合吗?例如ObservableCollection?为什么不绑定到更新的属性并使用转换器(IValueConverter)(为您的行制作模板/样式)来决定数据的状态