【发布时间】:2013-08-27 05:17:05
【问题描述】:
我有三个模型和视图模型,它们相互依赖以进行验证。 此外,模型必须对彼此的变化做出反应。例如,如果修改了 ModelA.Prop1,则必须从数据库中重新填充 ModelB.Funds。
如何在 MVVM 中实现这一点?
【问题讨论】:
标签: .net wpf mvvm mvvm-light
我有三个模型和视图模型,它们相互依赖以进行验证。 此外,模型必须对彼此的变化做出反应。例如,如果修改了 ModelA.Prop1,则必须从数据库中重新填充 ModelB.Funds。
如何在 MVVM 中实现这一点?
【问题讨论】:
标签: .net wpf mvvm mvvm-light
您如何解决这个问题可能取决于您的设置。
如果您在 ViewModel 中引起或检测到更改,您可以在 ViewModel 中启动刷新。因为 ViewModel 被允许了解模型,所以您可以在仍然坚持 MVVM 模式的同时做到这一点。对于 ViewModel 之间的通信,例如在 ModelA 的 ViewModel 和 ModelB 的 ViewModel 之间,您可以使用消息传递系统,例如 MVVM light 中的消息代理。
如果模型包含在存储库中,您可以让存储库负责同步模型。这样您就可以尽可能长时间地延迟同步。
我想说明的是,如果模型如此依赖,您可能会查看单个模型而不是两个模型。先检查一下!如果您觉得需要在两个模型之间设置大量同步和依赖关系,这清楚地表明您可能正在查看单个模型。不要将模型与类混淆;一个模型可以有多个类。
【讨论】: