WPF MVVM - 如何安排ViewModels

时间:2013-02-08 17:05:56

标签: wpf mvvm

我正在研究基于MVVM模式的WPF应用程序。

对于特定实体,我有一个包含实体属性的Model,一个实现INotifyPropertyChanged的ViewModel,它有一些额外的逻辑,以及公开Model的属性和两个Views,一个用于创建,一个用于编辑实体。 / p>

我为编辑创建一个ViewModel并创建视图,并在编辑时传递实体的id,以便可以检索现有数据。

我无法解决的是如何在这种情况下构建ViewModel,即:

  1. 我是否应该将EntityViewModel作为EditEntityViewModel的属性,其中EntityViewModel公开Model的属性,EditEntityViewModel处理命令和其他逻辑?如果我这样做,那么我认为EntityViewModel不会收到视图中的更改通知。
  2. 我应该有两个彼此一无所知的ViewModel吗?
  3. 我是否应该为页面提供单个ViewModel,以暴露模型的属性以及处理命令和其他逻辑?
  4. 别的什么?
  5. 我知道每个View应该有一个ViewModel,但我不完全确定如何定义单独的视图。你可能会说我对如何实现框架感到有点困惑。

    非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

不要过度复杂化。尝试将视图模型保持为模型关系1:1。因此,您的视图模型将公开方法以支持模型上的所有CRUD方法。另外,考虑使用一个视图,而不是两个视图。他们之间有很多重叠,所以我认为这是有道理的。您将编写和维护的类更少。我认为使用单一视图方法列表中的#3是您最好的选择。