3

私は MVVM パターンを使用して C# アプリを作成していますが、プロパティごとに変更追跡を実装する最良の方法は何かと考えていました。現在 INotofyPropertyChanged を実装しており、オブジェクト全体がダーティかどうかをフラグしますが、実装する必要がある要件のいくつかは、変更されたすべてのプロパティの UI のテキスト ボックスで画像を表示できるようにすることです。

基本的に、私のビュー モデルにはすべて、DataAccess レイヤーからのデータを含むクラスであるプライベート フィールドがあります。したがって、基本的にクラスは次のようになります。

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
   }
}

UIで

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 に答える