1

我有三个模型和视图模型,它们相互依赖以进行验证。此外,模型必须对彼此的变化做出反应。例如,如果修改了 ModelA.Prop1,则必须从 DB 重新填充 ModelB.Funds。

你如何在 MVVM 中实现这一点?

4

1 回答 1

1

你如何解决这个问题可能取决于你的设置。

如果您导致或检测到 ViewModel 中的更改,您可以从 ViewModel 中启动刷新。因为 ViewModel 被允许了解模型,所以您可以在仍然坚持 MVVM 模式的同时做到这一点。对于 ViewModel 之间的通信,例如 ModelA 的 ViewModel 和 ModelB 的 ViewModel 之间的通信,您可以使用消息传递系统,例如 MVVM light 中的消息代理。

如果模型包含在存储库中,您可以使存储库负责同步模型。这样您就可以尽可能长时间地延迟同步。

我想说明的是,如果模型如此依赖,您可能会查看单个模型而不是两个模型。先检查一下!如果您觉得需要在两个模型之间设置大量同步和依赖关系,这清楚地表明您可能正在查看单个模型。不要将模型与类混淆;一个模型可以有多个类。

于 2013-08-27T05:44:01.500 回答