关于MVVM模式的困惑

时间:2014-05-22 07:55:56

标签: c# wpf xaml mvvm microsoft-metro

1 - >在大多数地方我发现使用视图的MVVM文章,因此这些视图对应于Xaml页面中的Xaml页面或控件。就像他们说每个视图应该有单独的Viewmodel一样,这意味着我的每个xaml页面都是一个视图,它应该有Viewmodel。

2-> 我在同一页面上使用了更多的三个网格,并使用样本视图模型中的数据绑定处理它们的可见性,这些网格数据已经从示例Viewmodel处理,因此我的viewmodel代码变得越来越大。所以我感到困惑的是这些网格对应到视图,我必须为这些网格制作不同的视图模型。 希望你们得到它。 我在使用Windows 8 metro风格的应用程序。

1 个答案:

答案 0 :(得分:1)

是的,通常,每个视图都应该有自己的视图模型。但是,这完全取决于开发人员或开发团队。例如,主视图可能具有子视图(通常为了方便不复制代码段)。完全可以将主视图和子视图一起使用一个主视图模型,或者为每个视图使用一个单独的视图模型。

如果你真的不想要大视图模型,那么你可以选择第二种选择,尽管在父视图模型和子视图模型之间进行通信时可能会增加额外的复杂性。如果您的视图模型不需要进行通信而您不介意大视图模型,那么您可以选择第一个选项。

这实际上取决于您的个人编码偏好。值得注意的是,并非每个数据对象都具有拥有自己的视图模型,尽管一些开发人员喜欢将他们的业务对象包装在视图模型中。在这种情况下,每个视图模型都不太可能拥有自己的视图,除非您将渲染的DataTemplate计算为视图(大多数人不这样做)。

为什么不尝试不同的选项,看看哪些适合你?