最近我得到解释说,如果我使用DataTemplates,MVVM只能以“正确的方式”完成。这是真的吗?
如果您想要高度可重复使用的“视图”,我会说使用DataTemplates是一个好主意。
但是,如果我要开发一个具有五到十个不同页面的应用程序,并且几乎没有重复使用特定控件(比如“Person”视图只使用一次,并且很有可能这个要求会发生变化),为什么我只是创建一个usercontrol并将其直接放入代码?
我在这里错过了MVVM的一些重要核心原则吗?
答案 0 :(得分:3)
MVVM的主要卖点是使用WPF强大的绑定功能将View与ViewModel分离(以便VM不知道View)。
DataTemplates是另一个允许您以不同方式表示数据的功能。正如您所说,如果您没有可重复使用的DataTemplate,那么就不要创建一个,即使您确实它确实存在于View的资源中,如果您愿意,也可以分享更广泛的组。
使用UserControl在需要执行额外操作(除了简单的表示数据)之外非常有用,例如,一些复杂的验证或额外的命令/按钮
我不认为MVVM和DataTemplates在相同的上下文中是相关的。
答案 1 :(得分:0)
DataTemplate没有特殊需求,您有一个视图和一个与数据绑定和事件协作的视图模型。 WPF中的MVVM目标是从视图中删除代码以实现真正的仅呈现视图,而不是存储后面的混乱代码。从视图中获取ViewModel是不可知的另一个目标,即使并非总能实现。