Селектор шаблонов данных WPF

У меня есть селектор шаблонов данных, который я использую, чтобы выбирать между двумя разными шаблонами. Проблема в том, что эти шаблоны включают сетку в качестве внешнего элемента и т. Д. Я сделал то, что у меня есть селектор шаблонов в моем элементе управления ресурсами в моем UserControl.Resources:

<l:UIDataTemplateSelector x:Key="UISelector"
          ClassicDataTemplate="{StaticResource ClassicDataTemplate}"
          ModernDataTemplate="{StaticResource ModernDataTemplate}" />

Кроме того, у меня есть элемент управления содержимым, где мои шаблоны находятся в шаблонах элементов управления:

<ContentControl ContentTemplateSelector="{StaticResource UISelector}"></ContentControl>

Когда я запускаю свой код, это приводит к сбою, но если я использую:

<ContentControl Template="{StaticResource ClassicDataTemplate}"></ContentControl> 

Чтобы использовать тот или иной шаблон, он отлично работает. Есть ли простой способ заставить его использовать селектор шаблонов для его отображения?


person Navvy    schedule 03.08.2017    source источник


Ответы (1)


ContentControl имеет Template типа ControlTemplate. Он также принимает ContentTemplate типа DataTemplate и ContentTemplateSelector, который, как ожидается, выберет DataTemplate. В вашем случае, поскольку Template="{StaticResource ClassicDataTemplate}" работает, я подозреваю, что вы создали ControlTemplate вместо DataTemplate. Нужен рабочий ContentTemplate="{StaticResource ClassicDataTemplate}" для перехода на селектор.

person grek40    schedule 03.08.2017