Wpf 执行MVVM时视图和用户控件之间的差异

Wpf 执行MVVM时视图和用户控件之间的差异,wpf,mvvm,Wpf,Mvvm,最近我经常看到关于MVVM和usercontrol的问题,其中-forme-视图和usercontrol是混合的 对于me执行MVVM时的视图只是一个漂亮的界面,允许用户与我的ViewModels交互,因此至少是一组带有绑定的控件。大多数时候只有xaml,但不禁止代码隐藏 对于me用户控件与viewmodel根本不相关。usercontrol在xaml中有一个表示形式,当然还有存在属性、方法和依赖属性的代码隐藏 我走错方向了 编辑:当然,视图和用户控件继承自usercontrol类——所以从技术

最近我经常看到关于MVVM和usercontrol的问题,其中-forme-视图和usercontrol是混合的

对于me执行MVVM时的视图只是一个漂亮的界面,允许用户与我的ViewModels交互,因此至少是一组带有绑定的控件。大多数时候只有xaml,但不禁止代码隐藏

对于me用户控件与viewmodel根本不相关。usercontrol在xaml中有一个表示形式,当然还有存在属性、方法和依赖属性的代码隐藏

我走错方向了

编辑:当然,视图和用户控件继承自usercontrol类——所以从技术上讲,这两个控件都是usercontrol。但在进行MVVM时,我只使用术语视图。当与viewmodel没有直接关系时,术语usercontrol


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

你没有错,只要考虑一下用户控件可以是一个具有视图模型的可重用视图。因为整个复合ui体系结构基于shell(主窗口、视图)和一些具有视图的区域(用户控件)

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

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

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

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


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

在我看来,用户控件只是一个可重用的视图元素。虽然在某些情况下,我看到用户控件有自己的视图模型。对我来说很重要的是,它们的代码和“常规”视图一样少,就像在视图模型中烘焙大部分代码一样。