我可以在WPF中为View提供多个ViewModel

时间:2010-11-09 02:59:34

标签: mvvm-foundation

我可以在WPF中为View提供多个ViewModel吗?因为有时我们只需要以简单的视图格式显示视图,有时相同的视图必须以可编辑的格式显示。因此,我们可以为每个创建单独的视图模型。

那么有没有办法将2个不同的视图模型挂钩到视图?

2 个答案:

答案 0 :(得分:2)

ViewModel应该作为View的数据上下文,因此只允许一个VM。

没有理由不能打破你查看多个UserControls,每个UserControl都有自己的ViewModel。

答案 1 :(得分:1)

通常,您要将View绑定到单一类型的View Model。这并不是说你的类型不能是一个接口,也不是你的两个视图都继承的基类。

当我有一个跨越多个不同视图的单一视图模型类型时,我倾向于只使用接口或基类/派生类的情况。例如,如果我有两种不同类型的窗体显示窗口小部件信息,我将创建一个基本窗口小部件ViewModel类。

在你的情况下,听起来你应该a。)为你的简单和高级视图创建两个视图或b。)只使用一个ViewModel类。