Как определить, какой ContentTemplateSelector использовать? - PullRequest
0 голосов
/ 21 мая 2019

Я видел множество примеров, когда свойству ContentTemplateSelector элемента управления содержимым присваивается StaticResource.

Пример: <ContentControl Content="{Binding}" ContentTemplateSelector="{StaticResource MyTemplateSelector}"/>

Состояния MSDN:

Как правило, вы создаете DataTemplateSelector, когда у вас есть несколько DataTemplate для объектов одного типа, и вы хотите предоставить собственную логику для выбора DataTemplate для применения на основе свойств каждого объекта данных.

Источник: DataTemplateSelector Class

Зная это, моя ситуация такова, что у меня есть два типа объектов , где каждый объект имеет свой собственныйнабор шаблонов данных он может использовать.Есть ли способ, которым я могу просто иметь элемент управления содержимым ContentTemplateSelector , связывающий со свойством ContentTemplateSelector в модели представления?Сложность в том, что шаблоны данных определены в файле xaml - я не могу просто инициализировать новый экземпляр определенного ContentTemplateSelector для этого класса.

Дополнительная информация: у меня есть модель родительского представления, гдекаждый из его подклассов должен быть представлен как другой тип объекта .Таким образом, в зависимости от того, какая модель представления подкласса переключена, она должна использовать соответствующие ContentTemplateSelector и шаблоны данных.

Я также получил вышеупомянутое, чтобы работать с конвертером, но я хочу избежать этого.В идеале я хотел бы иметь код, который делает этот процесс как можно более общим.т.е. не нужно поддерживать код преобразователя для добавления новых типов объектов в будущем, просто чтобы вернуть правильное DataTemplateSelector.Дело в том, что всякий раз, когда добавляется новый подкласс, он сразу же работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...