3

我正在使用 MVVM 模式编写一个 C# 应用程序,我想知道在每个属性的基础上实现更改跟踪的最佳方法是什么。我目前已实现 INotofyPropertyChanged 并标记整个对象是否脏,但我必须实现的一些要求是他们希望能够通过 UI 上的文本框为每个已更改的属性显示图像。

基本上我的视图模型都有一个私有字段,它是我的类,其中包含来自我的数据访问层的数据。所以基本上一个类将如下所示:

private BusinessObj _data


public Name
{
    get{ return _data.Name;}
    set
    {
       if(_data.Name != value)
       {
           _data.Name = value;
           PropertyChanged("Name");
           IsDirty = true;
       }
    }
}

我的数据访问层基本上是序列化和反序列化 XAML 配置文件以配置我们的产品。

4

1 回答 1

0

您可以ObservableCollection在您的模型类中使用并让您的 UI 在可观察的业务数据集合发生更改时订阅该事件。

在模型视图中

public class BusinessObjList : ObservableCollection<BusinessObj>
{
   public BusinessObjList() : base()

   public void AddBusinessObj
   {
       // your own manipulation
   }
}

在用户界面中

BusinessObjList BL = new BL();
BL.CollectionChanged += new NotifyCollectionChangedEventHandler(bl_CollectionChanged);

static void bl_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
   // handle the change in UI.
}
于 2012-07-03T20:56:26.027 回答