【发布时间】:2013-01-01 22:59:22
【问题描述】:
我正在使用 MVVM 模式对 WPF 应用程序进行原型设计。在回答this question 之后,我设置了一个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();
}
}
现在,接下来会发生什么:
- viewmodel 改变一个属性,例如
LoginModel属性。 - viewmodel 通过设置其属性将模型属性推回服务:
modelService.LoginModel.MyProperty = localLoginModel.MyProperty; - 该服务应发布一条消息:“嘿,我的
LoginModel类型的模型刚刚更改。” - 已订阅此消息的任何其他视图模型将从服务中提取此更改的模型。
我该如何实现:
- “广播消息”?
- 订阅消息?
【问题讨论】:
标签: c# wpf events mvvm message