viewmodel包装模型并通过INotifyChanged公开与视图相关的任何属性.该视图还绑定到几个ICommand对象,这些对象处理由视图触发的某些行为.我有一个外部ICommand,其唯一目的是将模型保存到数据库中.
我读过的所有内容都表明视图或视图模型都不应该引用存储库.这就是命令3在视图模型之外的原因.
我的问题是双重的.首先,这是一个合理的架构,其次,什么是将模型实例转移到命令3以便将其放入存储库的好方法?
在MVVM中,viewmodel通常是位于模型上方的“粘合”层 – 而存储库是模型的一部分(它是域特定数据/逻辑的一部分).我个人对此的看法:
通过将命令3放入VM,让VM直接与存储库一起工作可能比尝试将其分离出来更干净.