3

最近我经常看到关于 MVVM 和 usercontrol 的问题,对我来说,view 和 usercontrol 混淆了。

我来说,做 MVVM 时的 View 只是一个漂亮的界面,它允许用户与我的 ViewModel 交互 - 所以至少是一个带有绑定的控件集合。大多数时候只有 xaml,但不禁止代码隐藏。

我来说,用户控件根本与视图模型无关。用户控件在 xaml 中有一个表示形式,当然还有代码隐藏,其中存在属性、方法和依赖属性

我走错路了?

编辑:当然视图和用户控件继承自 UserControl 类 - 所以从技术上讲都是 UserControls。但是我在做 MVVM 时只使用了 View 一词。和术语用户控件仅在与视图模型没有直接关系时。

ps:我的英文太差了,写不出我的意思...

4

2 回答 2

2

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

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

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

混合点是,通常,视图在 MVVM 应用程序中拥有用户控件,因为 WPF 是基于 XAML 的。它在那里被渲染,因此开发人员可以将您、他和其他人的用户控件插入到他想要的地方。

而窗户不能放置到其他窗户中。并且页面只能显示在框架元素中,因此大多数视图都是用户控件。

于 2012-07-20T09:17:24.907 回答
1

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

于 2012-07-20T09:09:50.210 回答