【发布时间】:2013-03-31 00:01:02
【问题描述】:
目前我正在使用 DI 在虚拟机之间传递数据,想象一下搜索页面和结果页面或主/详细信息的场景。
因此,在这种情况下,我应该创建一个称为“参数 VM”的 VM(带有或不带有模型)来存储我的搜索参数,并在详细信息或结果 VM 中读取它们。
我还在 VMLocator 中注册了这个参数 VM,并将其注入到两个 VM 的构造函数中。
我得到的是,当我搜索新数据并将要搜索的数据存储在此参数 VM 中时,我在结果/详细信息 VM 中也成功获取了数据。
所以这是一种使用 MVVM Light 的经过验证的模式,尽管在网络上没有很好的记录,但我的问题是,这在性能和代码可读性方面是否是一个好方法。我想知道是否有人在不使用 MVVM Light 中的消息系统的情况下使用另一种方法。
我对这种方法的一个烦恼是我必须将我的参数封装在一个继承 ViewModelBase 的 VM 中,如果我想注入一个普通类,我无法将更改传播到第二个 VM,我仍然不知道为什么我不能对一个简单的课程做同样的事情,我想知道是否有人也知道原因。我在 VM 中创建一个简单类的原因是因为在 WP 和 W8 中,通过这种方式,我可以使用 VMLocator 中的工厂在应用程序停用和激活时恢复模型的状态。
我会很感激你的 cmets!
【问题讨论】:
标签: design-patterns mvvm dependency-injection mvvm-light