0

我正在开发基于 MVVM 模式的 WPF 应用程序。

对于特定实体,我有一个包含实体属性的模型,一个实现 INotifyPropertyChanged 并具有一些附加逻辑的 ViewModel 以及公开模型的属性和两个视图,一个用于创建实体,一个用于编辑实体。

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

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

  1. 我是否应该将 EntityViewModel 作为 EditEntityViewModel 的属性,其中 EntityViewModel 公开模型的属性,而 EditEntityViewModel 处理命令和其他逻辑?如果我这样做,那么我认为 EntityViewModel 不会收到有关视图更改的通知。
  2. 我应该有两个彼此一无所知的独立 ViewModel 吗?
  3. 我是否应该为页面提供一个 ViewModel 来公开模型的属性以及处理命令和其他逻辑?
  4. 还有什么?

我知道每个视图应该有一个 ViewModel,但我不完全确定如何定义单独的视图。您可能会说我对如何实现该框架感到有些困惑。

非常感谢您的帮助。

4

1 回答 1

1

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

于 2013-02-08T18:16:27.447 回答