我注意到MVVM框架中的ViewModelBase的每个子类都可以覆盖构造函数
public ViewModelBase(IMessenger messenger)从架构上讲,使用IMessenger对ViewModel通信建模并在模型更改时更新ViewModels可以吗?
这意味着每个模型都有自己的IMessenger实例,每个viewModel都订阅这些消息。
现在我使用的接口如下
public interface IModel
{
event EventHandler<ModelStatusChangedArgs> StatusChanged;
}对于每一种型号都是..。我觉得我做错了什么。
发布于 2015-03-10 18:02:54
从技术上讲,您的可以将它用于您不知道谁可能会倾听或对该事件感兴趣的每一种情况。
但是MVVM是一个MVVM,它实际上用于允许ViewModels的松散耦合。在模型中使用它将最终将模型绑定到MVVM框架。
但是,没有什么可以阻止您编写自己的事件聚合器/消息传递系统(即域事件)。您还可以通过实现MVVM信使的包装来从ViewModels中删除Messanger依赖项。
您通常希望保留这种“层”依赖关系:
而MVVM框架驻留在“应用层”中,模型不应该知道它。
https://stackoverflow.com/questions/28947436
复制相似问题