Как иметь классы DataTemplates? - PullRequest
2 голосов
/ 02 ноября 2009

В моем приложении я хотел бы иметь шаблоны данных, которые я могу сказать:

  • Это шаблоны данных для использования в TreeView
  • Это шаблоны данных, используемые при отображении сводки объекта
  • Это шаблоны данных, которые используются при отображении деталей

Единственный способ сделать это - создать DataTemplateSelector и вручную вернуть DataTemplate (возможно, по соглашению об именах) для нужного мне класса. Есть ли более элегантный способ справиться с этой ситуацией?

Ответы [ 2 ]

2 голосов
/ 02 ноября 2009

Я не уверен, что полностью понимаю, что вы ищете, но вы должны просто иметь возможность определить DataTemplate в ResourceDictionary в той области, которая наиболее подходит вам (Приложение, Окно Элемент или внешний) с x:Key того типа данных, для которого они предназначены, и они будут автоматически выбираться встроенным механизмом выбора шаблонов данных WPF.

Например:

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

Теперь, где бы ни встречался экземпляр MyDataType в этом окне, WPF автоматически выберет этот шаблон для отображения его данных.

0 голосов
/ 06 ноября 2009

вы можете установить свойство DataType DataTemplate. Во время выполнения шаблон будет автоматически назначен объекту его Типа.

...