wpf - MVVM - 控件与 View

标签 wpf silverlight design-patterns mvvm viewmodel

我一直在 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/

相关文章:

c# - 我什么时候应该在事件聚合器上使用事件处理程序?

wpf - 如何访问数据模板中存在的控件

c# - Silverlight 中的配置文件

silverlight - 如何在 Silverlight 应用程序中获取客户端大小?

javascript - 类层次结构 : Is there a cleaner pattern for this?

c# - 更改我的 wpf 应用程序的语言

WPF StaticResource有效,DynamicResource无效

wpf - 如何在应用程序中使用HRTF

java - 使用注释来记录参数传递策略?

ios - 多个 RESTful Web 服务调用与 MySQL JOIN