.net - 在 MVVM 中,DataTemplates 是否将 Views 视为 UserControls 是 Views?

标签 .net wpf mvvm viewmodel datatemplate

在 MVVM 中,每个 View 都有一个 ViewModel。我理解为 的 View 窗口、页面或用户控件 您可以将 ViewModel 附加到其中, View 从中获取其数据。

但是一个数据模板 也可以渲染 ViewModel 的数据。

所以我理解 DataTemplate 是另一个“ View ”,但似乎有 差异 ,例如Windows、Pages 和 UserControls 可以定义自己的 .dll,一种通过附加模板与 DataContect 绑定(bind),这样 Windows、Pages、UserControls 可以通过 动态附加到 ViewModels。服务定位器/容器 , ETC。

在 UI 上呈现 ViewModel 的数据时,DataTemplates 与 Windows/Pages/UserControls 有何不同?除了这四种之外,还有其他类型的“ View ”吗?

最佳答案

我使用它的方式,DataTemplate 实际上是将 View 链接到 ViewModel 的方式。通常我在 MVVM 中的 DataTemplates 看起来像这样:

<DataTemplate DataType="{x:Type vm:FooViewModel}">
    <v:FooView />
</DataTemplate>

关于.net - 在 MVVM 中,DataTemplates 是否将 Views 视为 UserControls 是 Views?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1016828/

相关文章:

c# - C# 中的 false 运算符有什么用?

.net - 为 Windows 服务设置环境变量

c# - RavenDb 增加了 winform 应用程序的启动时间

c# - 你如何通过xaml引用一个类?

c# - 如何使用 DataContext 绑定(bind)到 List<T>?

android - 建议在 View 模型 android kotlin 的实时数据中使用 getter 或 equals

wpf - 从 MVVM 更改 DynamicResource

c# - 奇怪的通用行为

wpf - Teststack.White拖放问题

WPF OnPropertyChanged 重复代码