在我的应用程序中,我想拥有DataTemplates以便可以说:
这些是在TreeView中使用的DataTemplates
这些是显示对象摘要时要使用的DataTemplates
这些是显示详细信息时要使用的DataTemplates
我看到的能够做到这一点的唯一方法是为我需要的类创建一个DataTemplateSelector并手动返回该DataTemplate(可能是根据命名约定)。有没有更优雅的方式来处理这种情况?
最佳答案
我不确定我是否完全了解您要查找的内容,但是您应该只能在最适合您的范围(应用程序,窗口,元素或外部)中定义DataTemplate
中的ResourceDictionary
),其对应的数据类型为x:Key
,WPF的固有数据模板选择引擎会自动选择它们。
例如:
<Window ...>
<Window.Resources>
<DataTemplate x:Key="{x:Type myns:MyDataType}">
<!-- your template definition here -->
</DataTemplate>
</Window.Resources>
</Window>
现在,在Window WPF中遇到MyDataType实例的任何地方,WPF都会自动选择该模板以显示其数据。