【发布时间】:2011-09-04 18:09:39
【问题描述】:
MVVM 模式与 MVVM Light 更好,但有时我觉得我什么都不懂。 我在 SL 4 中有一个业务应用程序,到目前为止,我已经有 18 个 VM ......还有更多要写的!我正在应用 Laurent Bugnion 在 MIX11 会议中使用的模式(使用 SimpleIoc 类)。
一个视图模型绑定到一个视图(命名为“A”),但同样的视图模型也绑定到另一个视图(命名为“B”)。与视图“A”绑定的视图模型在 ViewModelLocator 中以标准方式调用。与视图 B 绑定的视图模型使用不同的键调用,以确保它们是 2 个不同的实例。此外,它们注入了不同的 DomainService,因此与视图上的控件绑定的实体是不同的。
视图模型注册一些消息以跟踪它交互的其他视图模型中的变化,例如选择更改意味着用户想要显示其他内容以便在 DB 上检索数据)。
问题是,如果我调用视图 A,然后调用视图 B,我会为相同的消息注册 2 次,所以我在 DB 上进行了 2 次操作。
我认为正确的是在我调用视图 B 时(通常在我关闭视图 A 时)处理绑定到视图 A 的视图模型。但我真的不知道在哪里处理它,何时以及如何处理它!好的..我可以想象何时以及如何.. 但是在哪里?
如果你认为我很困惑,那你是对的!
【问题讨论】:
标签: silverlight silverlight-4.0 mvvm mvvm-light wcf-ria-services