我正在使用MVVM模式编写一个C#应用程序,我想知道在每个属性的基础上实现更改跟踪的最佳方法是什么。我目前已实现INotofyPropertyChanged并标记整个对象是否脏,但我必须实现的一些要求是他们希望能够通过UI上的文本框为每个已更改的属性显示图像。
基本上我的View Models都有一个私有字段,它是我的类,包含来自DataAccess Layer的数据。所以基本上一个类看起来像这样:
private BusinessObj _data
public Name
{
get{ return _data.Name;}
set
{
if(_data.Name != value)
{
_data.Name = value;
PropertyChanged("Name");
IsDirty = true;
}
}
}
我的数据访问层基本上是序列化和反序列化XAML配置文件以配置我们的产品。
答案 0 :(得分:0)
您可以在模型类中使用ObservableCollection
,并在可观察业务数据集更改时让您的UI订阅事件。
public class BusinessObjList : ObservableCollection<BusinessObj>
{
public BusinessObjList() : base()
public void AddBusinessObj
{
// your own manipulation
}
}
UI中的
BusinessObjList BL = new BL();
BL.CollectionChanged += new NotifyCollectionChangedEventHandler(bl_CollectionChanged);
static void bl_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
// handle the change in UI.
}