我一直在 WPF 中做一个原型(prototype)而不使用 MVVM。现在它的大小已经到了我正在重构它以使用 MVVM 的程度。
当我开始这个项目时,我直接进入并为很多事情创建了用户控件。
我现在正在破坏 View 和 View 模型中的东西。但是,我最终得到了包含 UserControls 的 View ; UserControls 绑定(bind)到模型中现在的对象。
那么,UserControls 的概念现在在 MVVM 中已经死了吗?我的意思是,在过去(WinForms、ASP.NET 等)你会有一个名为“控件”的项目并重用它们。 MVVM 中的“ View ”是典型 UserControl 的直接替代品吗?
最佳答案
一个 UserControl
在 WPF 中只是一个 ContentControl
有一些调整的默认属性值。一个 ContentControl
只不过是可以应用模板来定义其外观的一段内容。
我做 MVVM 的方式跳过了中间人并将 View 定义为 DataTemplate
s。然后你只需要将你的虚拟机粘贴到 WPF 的可视化树的某个地方,WPF 就会用你的 DataTemplate
渲染它。 .例如:
<ContentControl Content="{Binding SomeViewModel}"/>
<ItemsControl ItemsSource="{Binding SomeViewModels}"/>
关于wpf - MVVM - 控件与 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1036805/