1

ビュー モデルに次のプロパティがあり、ビューはこのプロパティにバインドされています。

ActiveCategory( 内の_catManager) が他のイベント (このビューの外部) から変化する可能性がある特別なケースを除いて、すべて正常に機能します。

Category Managerビューモデル全体を公開したくないので、必要なプロパティのみを公開しています。このビューモデル内でトリガーされない変更であっても、ビューがすべての変更を通知されるようにするための最良の方法は何ですか?

 
    public ICategory SelectedCategory
     {
      get
       {
        return _catManager.ActiveCategory;
       }
      set
       {
        _catManager.ActiveCategory = value;
        OnPropertyChanged("SelectedCategory");
       }
     }
4

2 に答える 2

5

ビューモデルを _catManager の INotifyPropertyChanged イベントにフックし、ビューモデルを介してプロパティ変更イベントをリレーします。「ActiveCategory」が表示される場合、「SelectedCategory」の INPC を上げる必要があることを意味します。

于 2012-05-08T14:11:43.660 に答える
1

_catManager クラスにも通知を委任する必要があります。

したがって、その ActiveCategory プロパティを変更すると、通知が発生します。

1 つの方法は、ハンドラーをプロパティとして持つクラスにハンドラーを追加し、_catManager が何らかの形で変更されたという通知を発生させることです。

于 2012-05-08T14:17:19.100 に答える