我需要一些帮助来构建MVVM应用程序。这次我想以正确的方式做到这一点。
我的View
绑定到绑定到ViewModel
的{{1}}。没问题。显示数据不是问题,更新它是我的问题。
那么当Model
要求View
更新ViewModel
(带Model
)时,需要处理逻辑?
在我的情况下,更新数据并不简单,有许多文件的计算。
另外,我真的希望Command
不知道业务逻辑。那怎么做? Model
中的一个属性,表示他想要更新?或许Model
必须知道业务逻辑?这是最佳做法吗?
答案 0 :(得分:4)
该模型实际上是您的业务数据状态的快照。您的非平凡计算可以封装在可以在接口后面抽象并注入到视图模型中的服务中。这样,除了通过接口契约调用它们之外,您的视图模型对这些复杂过程一无所知。因此,您的命令会触发,您的视图模型会提供编排,您的服务会提供实际的业务计算,并会生成一个代表系统新状态的更新模型。