我有一个DomainView,允许您在我的域中选择一个实体。实体显示在DomainView中的EntityView中。
我的问题是EntityView绑定的'DomainViewModel'属性应该是什么?
一切都会奏效,我只是想知道'MVVM-way'会是什么?我倾向于最后两个中的一个。
李
答案 0 :(得分:1)
使用典型的“MVVM-way”,ViewModel不应该知道其他ViewModel,View和ViewModel之间的关系是1-1。
听起来你真正的问题是“如何在ViewModels之间传递数据”?一个共同的主/细节互动。
您使用的是任何框架吗?我个人对PRISM更熟悉,但MVVM Light和其他人的概念相似。在PRISM中,一个很好的解决方案是EventAggregator
。 DomainViewModel发布EntityViewModel订阅的“EntitySelected”聚合事件。
另一种选择是在两个ViewModel中注入一个公共服务(或模型,具体取决于你的风格)。该服务将提供一个公共属性,如CurrentEntity,由DomainViewModel根据需要设置。
要么提供一种在ViewModel之间传递数据的机制,而没有那些相互依赖的ViewModel。