2016-11-03 14 views
0

私はWPFプロジェクトを構築しており、プリズムを実装しています。 私は永続性と呼ばれるデータベースへの接続を処理するライブラリを持っているDALを持っています。このライブラリはEntityFrameworkを使用し、いくつかのエンティティを持っています。 さらに私は今、いくつかのDomainModelsを有する - Iは、所与のシナリオに何をする:モデルの変更をViewModelsに通知するときに、EventAggregatorを使用するか、またはドメインモデルでINotifyPropertyChangedを実装する必要がありますか?

Iの両方がIUser型ドメインモデルとしてActiveUser(現在ログインしているもの)の参照が2つのviewmodelsを有する、こと我々はIUserServiceと呼ばれるサービスを介して取得します。 ViewModel1IUser変更された場合

は、このIUserFundsと呼ばれる性質を持っていると言うことができます - 私はそれが正しいデータを表示しているViewように更新する必要がありますIUserFundsへの変更があることをViewModel2を希望しますか。

  1. 私は私のモデルと同様に私のviewmodelsでINotifyPropertyChangedを実装してください、その後、各ViewModelが、その後PropertyChangedイベントに耳を傾けなければならない、と変更されたプロパティに応じて、適宜更新しますか?

  2. 私はEventAggregatorを使用し、イベントをパブリッシュ/サブスクライブし、私のDomainModels(?)からパブリッシュし、私のViewModelsにサブスクライブしますか?

  3. PropertyObserver<TPropertySource> : IWeakEventListenerクラスのようなものを実装していますか?このようないくつかのイベントがある場合

おかげ

+0

Iuserインスタンスはシングルトンですか? –

+0

@SatyajitMohantyいいえ – Nicholas

答えて

1

1.とは、両方の仕事をしなければならない、私はそうので、2.のために行くだろうすべてをより局所的な規模に保ちます。

1.の場合は、3になります。もあります。 PropertyObserverは、扱うオブジェクトの存続時間を考慮する必要がないので(より良い構文を話すのではなく)、より簡単に扱います。INotifyPropertyChanged

関連する問題