MVVM パターンを使用して WPF アプリケーションのプロトタイプを作成しています。この質問への回答に続いて、ModelProviderService
モデルをプロパティとして公開する を設定しました。サービスの消費者はビューモデルです。つまり、モデルを自分でインスタンス化するのではなく、サービスからモデルを引き出します。
class ModelProviderService {
private LoginModel loginModel;
public LoginModel LoginModel {
get { return loginModel; }
set { loginModel = value; }
}
private ProjectsModel projectsModel;
public ProjectsModel ProjectsModel {
get { return projectsModel; }
set { projectsModel = value; }
}
public ModelProviderService() {
loginModel = new LoginModel();
projectsModel = new ProjectsModel();
}
}
さて、次のことが起こります。
- ビューモデルは、プロパティなどのプロパティを変更し
LoginModel
ます。 - ビューモデルは、そのプロパティを設定することにより、モデル プロパティをサービスにプッシュします。
modelService.LoginModel.MyProperty = localLoginModel.MyProperty;
- このサービスは、「私のタイプのモデルが
LoginModel
変更されました」というメッセージを発行します。 - このメッセージを購読している他のビューモデルは、この変更されたモデルをサービスからプルします。
どうすれば実装できますか:
- 「ブロードキャストメッセージ」?
- メッセージへのサブスクリプション?