在MVVM中,DataTemplates认为视图是UserControls是视图吗?

Edw*_*uay 7 .net wpf datatemplate mvvm viewmodel

在MVVM中,每个View都有一个ViewModel.一个视图我理解为一个Window,Page或UserControl,你可以附加一个ViewModel,视图从中获取其数据.

DataTemplate也可以呈现ViewModel的数据.

所以我理解DataTemplate是另一个"View",但似乎存在差异,例如Windows,Pages和UserControls可以定义自己的.dll,一个类型与DataContect绑定另一个通过附加模板使Windows,Pages ,UserControls可以通过ServiceLocator/Container等动态附加到ViewModels .

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

Tho*_*que 7

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

<DataTemplate DataType="{x:Type vm:FooViewModel}">
    <v:FooView />
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)