执行MVVM时View和Usercontrol之间的区别

时间:2012-07-20 08:59:57

标签: wpf mvvm

最近我经常看到有关MVVM和用户控件的问题,其中 - 对于 - 视图和用户控件混在一起。

for me 一个视图在做MVVM时只是一个漂亮的界面,允许用户与我的ViewModel进行交互 - 所以至少有一组带有Bindings的控件。大部分时间仅限xaml但不禁止代码隐藏。

对于而言,用户控件根本与视图模型无关。 usercontrol在xaml中有一个表示,当然还有代码隐藏,其中存在属性,方法和依赖属性

我的方法错了吗?

编辑:当然view和usercontrol继承自UserControl类 - 所以技术上都是UserControls。但我在做MVVM时只使用了术语View。当与视图模型没有直接关系时,就称为usercontrol。

ps:我的英语太糟糕了,不能写下我的意思......

2 个答案:

答案 0 :(得分:3)

视图和用户控件在MVVM中完全不同。

视图是文件夹的概念名称,您可以在其中放置所有与UI相关的内容,例如用户控件,窗口,页面等。因此,View是包含特定应用程序的GUI部件的文件夹。

用户控件是由开发人员通过混合多个组件/控件以像单个控件一样工作来配置的控件。用户控件还可以保存其他用户控件。

混合点通常是,视图在MVVM应用程序中保存用户控件,因为WPF是基于XAML的。它会在那里呈现,因此开发人员可以将您,他和他人的用户控件插入他想要的地方。

而窗户无法放入其他窗户。并且页面只能以frame元素显示,因此大多数视图都是用户控件。

答案 1 :(得分:0)

你没有错,只考虑用户控件可以是具有视图模型的可重用视图这一事实。导致整个复合ui架构基于s shell(主窗口,视图)和一些带视图的区域(用户控件)