【问题标题】:How to have classes of DataTemplates?如何拥有 DataTemplate 类?
【发布时间】:2009-12-19 23:00:03
【问题描述】:

在我的应用程序中,我想要 DataTemplates 这样我可以说:

  • 这些是用于 TreeView 的数据模板
  • 这些是在显示对象摘要时使用的 DataTemplates
  • 这些是在显示详细信息时使用的 DataTemplates

我看到能够做到这一点的唯一方法是创建一个 DataTemplateSelector 并为我需要的类手动返回 DataTemplate(可能通过命名约定)。有没有更优雅的方式来处理这种情况?

【问题讨论】:

    标签: c# wpf datatemplate


    【解决方案1】:

    我不确定我是否完全理解您要查找的内容,但您应该能够在对您最有意义的范围内定义 DataTemplates 中的 ResourceDictionary(应用程序、窗口、元素或外部)具有它们所针对的数据类型的 x:Key,它们将被 WPF 的内部数据模板选择引擎自动选择。

    例如:

    <Window ...>
        <Window.Resources>
            <DataTemplate x:Key="{x:Type myns:MyDataType}">
               <!-- your template definition here -->
            </DataTemplate>
        </Window.Resources>
    </Window>
    

    现在,在该窗口中遇到 MyDataType 实例的任何地方,WPF 都会自动选择该模板来显示其数据。

    【讨论】:

      【解决方案2】:

      您可以设置DataTemplate 的DataType 属性。在运行时模板将自动分配给其类型的对象。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-28
        • 2014-10-14
        • 1970-01-01
        • 1970-01-01
        • 2019-06-09
        相关资源
        最近更新 更多