Я создаю пользовательский элемент управления.
Я хочу, чтобы шаблон для этого элемента управления использовал разные элементы управления для корневого элемента управления на основе значения свойства зависимости CanExpand. CanExpand определен в пользовательском классе управления.
Если CanExpand имеет значение true, я хочу отобразить с помощью Expander:
<ControlTemplate ...>
<Expander ...>
<!--...-->
<ContentPresenter/>
</Expander>
</ControlTemplate>
Если CanExpand имеет значение false, я хочу отобразить вместо него HeaderedContentControl:
<ControlTemplate ...>
<HeaderedContentControl ...>
<!--...-->
<ContentPresenter/>
</HeaderedContentControl>
</ControlTemplate>
Я думал об использовании DataTemplateSelector, но это ControlTemplate, а не DataTemplate, и нет свойства селектора для шаблона элемента управления.
Я не могу установить различные элементы управления на видимый / скрытый с помощью триггера, потому что дочерний контент может жить только под одним элементом управления. Кроме того, я не думаю, что вы можете изменить свойство Content с помощью триггера.
Есть предложения?
Спасибо.