В моем приложении я хотел бы иметь 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>
Теперь, когда экземпляр MyDataType встречается внутри этого окна, WPF автоматически выбирает этот шаблон для отображения своих данных.
вы можете установить свойство DataType DataTemplate. При запуске шаблон автоматически назначается объекту его Тип.