MVVM的虚拟机可以重复使用吗?

Ian*_*Ian 5 wpf mvvm

我只需要简单说明一下:

我有一个带球模型的示例应用程序,有两个视图(假设一个视图显示了球,并允许您使用鼠标来调整大小,单击更改其颜色,第二个视图具有一个带有两个子控件的控件(大小文本框和颜色选择器))。

MVVM是说我必须在这里拥有两台VM,一个用于每个特定的View,还是可以在不破坏模式的情况下重用VM?

作为后续问题,如果需要我拥有两个VM是否合法,根据模式,将一个作为另一个的派生类型,或者将两个作为基类的派生类型,或者将其作为基于公共部分的复合类?基本上满足两种类型的需求,但可以提高重用性吗?

我的示例是人为设计的,我试图指出两个视图都影响模型的相同两个属性。两个视图之间的最大尺寸,可用颜色等相同。

谢谢

jas*_*son 2

在 MVVM 中使用与在其他地方使用的相同的编码实践。特别是要保持干燥。因此,如果您可以使用相同的视图模型,那就这样做。我想说的是,视图模型的重用是极其罕见的。如果您稍后必须重构为两个单独的视图模型,但可以从公共基类派生以重用公共部分等,那么就这样做。