MVVM是否必须使用DataTemplates
本文关键字:DataTemplates 是否 MVVM | 更新日期: 2023-09-27 18:01:12
最近我被解释说,只有使用DataTemplates,MVVM才能"以正确的方式"完成。事实真的是这样吗?
如果你想要高度可重用的"视图",我认为使用DataTemplates是个好主意。
但是,如果我要开发一个应用程序,比如说,有五到十个不同的页面,并且很少或根本没有对特定控件的重用(比如"Person"视图只使用过一次,这一要求很可能不会改变(,为什么我不能简单地创建一个用户控件并将其直接放入代码中呢?
我是否遗漏了MVVM的一些重要核心原则?
MVVM的主要卖点是通过使用WPF强大的绑定功能将View与ViewModel分离(这样VM就不知道View(。
DataTemplates只是另一个功能,它允许您以不同的方式表示数据。正如您所说,如果您没有可重复使用的DataTemplate,那么就不要创建一个,即使您确实确保它位于视图的资源中,如果您愿意,您也可以在更广泛的组中共享它。
当您需要做一些额外的事情(除了简单的表示数据(时,使用UserControl可能很有用,例如,一些复杂的验证或额外的命令/按钮
我不认为MVVM和DataTemplates在同一个上下文中是相关的。
对DataTemplate没有特殊的需求,您有一个视图和一个与数据绑定和事件协同工作的视图模型。WPF中的MVVM目标是从视图中删除代码,以实现真正的仅表示视图,而不是混乱的代码隐藏存储。让视图中的ViewModel不可知是另一个目标,即使并非总是可以实现。