视图中的UserControls

时间:2011-08-12 15:02:53

标签: wpf mvvm

我想将WPF项目更改为MVVM模式。我希望在视图中有2个用户控件,以便稍后重用它们。如果我的主窗口是在dockpanel中放置2个用户控件的视图,我是否需要有2个视图模型?设置用户控件的正确方法是什么?在此先感谢!!!

4 个答案:

答案 0 :(得分:1)

您可以拥有一个ViewModel,两个ViewModel或许多ViewModel。您可以将ViewModel视为表示某种逻辑对象或屏幕下的数据,或者应该单独处理,序列化或缓存的内容。只要您稍微考虑一下它就没关系。< / p>

一个好的起点是考虑您正在显示/编辑/使用的内容。如果两个UC是相同数据的视图(例如,像代码编辑器/预览窗口),则可能有一个ViewModel。如果两个UC显示完全独立的数据,您可能有两个。如果其中一个UC有5个标签页并显示许多不同的数据,它可能应该绑定到多个。

如果您可以提供有关您正在做的事情的更多信息,我们可以给出答案。因为根据你当前的问题给出一个确切数字的任何答案都会跳出来。

答案 1 :(得分:0)

这实际上取决于你的用户控件,但是可能只有一个包含视图的视图模型,只需将其中的属性绑定到usercontrols上的特定属性

答案 2 :(得分:0)

如果它们不同,那么是的,你应该为每个都有一个ViewModel。如果它们是克隆,那么它们只需要一个ViewModel。 This article是学习MVVM模式的绝佳资源。它有点旧,但它对初学者来说非常好。我过去几周一直在使用它。

答案 3 :(得分:0)

好吧,既然你将在其他地方重用用户控件,那么每个人都应该有一个与之关联的viewmodel。这样,当重新使用它们时,您不必再次重写代码。