如果更改记录,如何更改DataGrid行颜色

时间:2011-11-28 09:28:21

标签: .net wpf xaml datagrid inotifypropertychanged

如果可能,我想通过绑定来实现...

我有一个绑定到ObservableCollection的WPF DataGrid

public class Product
{
    public string Code { get; set; }
    public string Desc { get; set; }
    public bool Updated { get; set; }
}

我的网格DataContext设置为可观察集合。

我想要实现的目标......

  • 当用户更改数据网格中的行时,“产品”的“已更新”字段将更改为“true”。
  • 因此,我可以以某种方式绑定网格的行颜色,以显示不同的颜色,这将向用户表明此行尚未保存。

认为我需要实现INotifyPropertyChanged才能完成此任务,但不确定如何做到这一点。此外,网格上是否有绑定属性以确保在UI上进行的更改更新后备存储?

干杯。

1 个答案:

答案 0 :(得分:4)

  1. 您的Product课程应该implement INPC,因此Updated的绑定会更新。

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

  2. 您可以在酒店触发:

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