我正在使用 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
属性。 - viewmodel 通过设置其属性将模型属性推回服务:
modelService.LoginModel.MyProperty = localLoginModel.MyProperty;
- 该服务应发布一条消息:“嘿,我的类型模型
LoginModel
刚刚改变。” - 已订阅此消息的任何其他视图模型将从服务中提取此更改的模型。
我该如何实施:
- “广播信息”?
- 订阅消息?