Учитывая следующую иерархию классов VM
public abstract class BaseClass {}
public class SubClass : BaseClass {}
public class OtherSubClass : BaseClass {}
Я хочу использовать ContentPresenter для выбора DataTemplate на основе типа DataContext.Следует выбрать один шаблон для подкласса, а другой - для всех других подклассов базового класса.Я использую следующую реализацию:
<ContentPresenter>
<ContentPresenter.Resources>
<DataTemplate DataType="{x:Type BaseClass}">
...
</DataTemplate>
<DataTemplate DataType="{x:Type SubClass}">
...
</DataTemplate>
</ContentPresenter.Resources>
</ContentPresenter>
Это работает, но я не уверен, насколько глупа эта реализация.
По каким правилам выбирается шаблон данных на основе типа данных?Я много искал, но не смог найти ответ.Я мог бы представить, что используется шаблон данных с наиболее конкретным типом соответствия, но я бы чувствовал себя лучше, если бы у меня было доказательство этого (и это не связано с чем-то другим, например с порядком DataTemplates или настроением WPF).