WPF,MVVM,ICommand和存储库

Con*_*cer 6 c# wpf repository mvvm

我有一个看起来像这样的WPF应用程序:

在此输入图像描述

viewmodel包装模型并通过INotifyChanged公开与视图相关的任何属性.该视图还绑定到几个ICommand对象,这些对象处理由视图触发的某些行为.我有一个外部ICommand,其唯一目的是将模型保存到数据库中.

我读过的所有内容都表明视图或视图模型都不应该引用存储库.这就是命令3在视图模型之外的原因.

我的问题是双重的.首先,这是一个合理的架构,其次,什么是将模型实例转移到命令3以便将其放入存储库的好方法?

Ree*_*sey 9

我个人认为ViewModel对存储库的引用没有问题.试图避免这种情况会导致不必要的并发症.

在MVVM中,ViewModel通常是位于模型上方的"粘合"层 - 而存储库是模型的一部分(它是域特定数据/逻辑的一部分).我关于MVVM的博客系列展示了我个人对此的看法的良好形象:

MVVM图

通过将命令3放入VM,让VM直接与存储库一起工作可能比尝试将其分离出来更干净.