MVVM - 使用简单模型作为自己的视图模型是一种不好的做法?

时间:2009-12-04 05:57:25

标签: mvvm dry

猜猜我们有简单的模型,例如让它成为 {姓名,年龄}

现在我们要显示一个人员列表。

  • 人员是只读的
  • 我们不需要编辑它们
  • 我们不需要任何其他内容,如演示文稿属性等。

现在的问题是,如果这是一个好习惯,不要创建 PersonViewModel 类,它可能是模型类的副本,还是会委托其所有属性?简单地将列表框绑定到人员列表而不是他们的视图模型是一个好主意吗?看起来很干,但MVVM的想法呢?

4 个答案:

答案 0 :(得分:7)

我没有绕过VM并直接在View中使用M的问题。有时模型非常小而且静态,将它们加载到包装VM中是浪费的。

答案 1 :(得分:0)

我创建了独立的ViewModel,但通常不是独立的模型。原因是DataBinding - 大多数POCO没有实现INotifyPropertyChanged接口并添加它们以使它们成为伪模型似乎打败了重用一个简单的类并尊重MVVM模式的目的。

现在,如果你知道你永远不会编辑它们,那可能不是一个坏主意。具有简单属性重定向的VM对我来说似乎毫无意义。

答案 2 :(得分:0)

就我而言,如果你实现了INotifyPropertyChanged,那么它就变成了一个ViewModel,你可以绑定它。 :)当我编写SoapBox Core这是MVVM时,我采用的方法是一切都是ViewModel。唯一的Model对象是我引入的第三方库中的类,并包装在我自己的ViewModel中。

答案 3 :(得分:0)

当ViewModel没有引入新的必需功能时,我不会为Person业务对象创建ViewModel。

您可能感兴趣的是MVVM社区中有第二种方法:为每个视图而不是每个业务对象创建一个ViewModel。

可以在WPF Application Framework (WAF)网站上找到遵循此方法的示例应用程序。