Я видел множество примеров, когда свойству ContentTemplateSelector
элемента управления содержимым присваивается StaticResource
.
Пример: <ContentControl Content="{Binding}" ContentTemplateSelector="{StaticResource MyTemplateSelector}"/>
Состояния MSDN:
Как правило, вы создаете DataTemplateSelector, когда у вас есть несколько DataTemplate для объектов одного типа, и вы хотите предоставить собственную логику для выбора DataTemplate для применения на основе свойств каждого объекта данных.
Источник: DataTemplateSelector Class
Зная это, моя ситуация такова, что у меня есть два типа объектов , где каждый объект имеет свой собственныйнабор шаблонов данных он может использовать.Есть ли способ, которым я могу просто иметь элемент управления содержимым ContentTemplateSelector
, связывающий со свойством ContentTemplateSelector
в модели представления?Сложность в том, что шаблоны данных определены в файле xaml - я не могу просто инициализировать новый экземпляр определенного ContentTemplateSelector
для этого класса.
Дополнительная информация: у меня есть модель родительского представления, гдекаждый из его подклассов должен быть представлен как другой тип объекта .Таким образом, в зависимости от того, какая модель представления подкласса переключена, она должна использовать соответствующие ContentTemplateSelector
и шаблоны данных.
Я также получил вышеупомянутое, чтобы работать с конвертером, но я хочу избежать этого.В идеале я хотел бы иметь код, который делает этот процесс как можно более общим.т.е. не нужно поддерживать код преобразователя для добавления новых типов объектов в будущем, просто чтобы вернуть правильное DataTemplateSelector
.Дело в том, что всякий раз, когда добавляется новый подкласс, он сразу же работает.