MVVM:每个View的一个ViewModel结构与每个View的单独ViewModel结构?

时间:2010-10-13 21:17:00

标签: wpf mvvm viewmodel

我是MVVM的新手,需要一些帮助。

我的应用程序由许多不同的窗口组成,这些窗口显示控件,允许用户编辑业务层中的数据。

目前,每次用户打开其中一个窗口的新实例时,ViewModel结构(镜像Business层的类和集合)都是从头开始创建的,并且数据绑定到窗口上的View,并且还配置了访问业务层的相应部分。

目前这种情况非常缓慢,我怀疑这是因为应用程序必须等到每次打开窗口时都创建并配置所有新的ViewModel。我也注意到RAM也很快被打破了。

在应用程序启动时创建一个ViewModel结构会不会更好,然后所有窗口和控件都引用这个单一实例? MVVM的惯例是什么?

2 个答案:

答案 0 :(得分:4)

每个视图一个ViewModel非常标准。您不希望共享ViewModel的实例,因为它们(通常)是有状态的。

在结束它之前,我会深入研究缓慢的问题,因为ViewModel正在创建它。使用工具分析应用程序,设置一些秒表或调试应用程序,看看瓶颈是什么。

答案 1 :(得分:1)

每次访问视图时是否需要重新创建视图模型?

如果没有,你似乎使用了view first方法,也许你应该使用viewmodel定位器?

你也可以看看viewmodel的第一种方法,也许这更适合你的应用程序。