在我的应用程序中,我想拥有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都会自动选择该模板以显示其数据。

09-06 05:11