关于MVVM模式的困惑

本文关键字:模式 MVVM 关于 | 更新日期: 2023-09-27 18:04:38

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

2 ->我在同一页面上使用了三个以上的网格,并使用样本视图模型中的数据绑定来处理它们的可见性,这些网格数据已经从样本视图模型中处理,因此我的视图模型代码变得越来越大。所以我很困惑这些网格是否对应于视图,我是否需要为这些网格制作不同的视图模型。希望你们能拿到。我在做windows 8 metro风格的应用

关于MVVM模式的困惑

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

如果你真的不想要大的视图模型,那么你可以选择第二个选项,尽管当涉及到父视图模型和子视图模型之间的通信时,这会增加额外的复杂性。如果你的视图模型不需要通信,并且你不介意大的视图模型,那么你可以选择第一个选项。

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

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