【发布时间】:2011-05-26 11:50:50
【问题描述】:
我正在阅读this post,作者建议使用 DataTemplates 定义 ViewModel 是一种疯狂的做法(#7)。我经常这样,真的有那么糟糕吗?
<DataTemplate DataType="{x:Type local:MyViewModel}">
<Grid>
...
</Grid>
</DataTemplate>
我的大多数视图只是一个定义一个或两个 DataTemplate 的 ResourceDictionary。对我来说,这样做比为每个 ViewModel 创建一个 UserControl 更有意义。为什么不需要 WPF 的可视化树中的额外层?当 DataTemplate 为我执行此操作时,我为什么要处理将 ViewModels 映射到 Views 的问题?这种语法真的是“疯子方法”吗?
【问题讨论】:
-
我在 Visual Studio 中工作,据我所知,您无法获得对 DataTemplates 的设计器支持。对于重要的视图,我喜欢在修改 XAML 时查看它的外观。但我不知道它在 Blend 中是如何工作的。
-
@default.kramer 是的,我忘记了。我几乎从不使用 VS 的 XAML 设计器,因为它很慢、很慢,而且一半时间都不能工作。如果我确实想用它来设计 DataTemplate,我通常会创建一个新的 UserControl,按照我想要的方式进行设计,然后将内容复制/粘贴到 DataTemplate 中。
标签: wpf mvvm user-controls view datatemplate