Поле со списком с возможностью поиска WPF с ItemTemplate

У меня есть ComboBox с привязкой Itemssource к ListViewCollection на виртуальной машине. ListViewCollection фильтрует ObservableCollection<ItemVM>

ItemVM имеет свойство DisplayText, которое будет отображаться в поле со списком.

Текст ComboBox привязан к свойству SearchString на виртуальной машине типа string, которое используется для фильтра ListCollectionView.

Я хочу, чтобы мой ItemVM был шаблонным, чтобы некоторые элементы отображались красным текстом на основе значений свойств в ItemVM.

У меня проблема в том, что я не могу одновременно использовать DisplayPathName и itemstemplate.

Itemstemplate обрабатывает тип ItemVM, но строка поиска является строкой. Это приводит к тому, что текст иногда является именем класса, а не фактическим значением.

Если бы я использовал строки вместо ItemVM, это сработало бы (но тогда у меня не было бы свойств, из которых можно было бы вызвать изменение цвета). Каково решение сделать поле со списком с возможностью поиска (отфильтрованным выпадающим списком), когда элементы не имеют строкового типа?


person Johan    schedule 25.05.2019    source источник
comment
Можете ли вы поделиться кодом того, что вы пытаетесь объяснить? Это помогает нам дать предложение/решение.   -  person G K    schedule 25.05.2019
comment
Это для компании, поэтому я не могу поделиться кодом. Я могу попытаться написать пример кода на его основе.   -  person Johan    schedule 25.05.2019
comment
Вы можете поделиться фиктивным или образцом кода того, что вы сделали в отдельном проекте (не в ваших реальных), и обновить свой вопрос.   -  person G K    schedule 25.05.2019
comment
Хорошо создадим концептуальный код на следующей неделе.   -  person Johan    schedule 25.05.2019
comment
Я только что понял, что ItemTemplateSelector может быть тем, что я ищу, поэтому я могу правильно обрабатывать разные типы. Я попробую это   -  person Johan    schedule 25.05.2019
comment
Просто поменяйте местами DisplayMemberPath="DisplayText" на TextSearch.TextPath="DisplayText". Ссылайтесь на этот пост, вы можете оставить IsTextSearchEnabled="False", чтобы применить собственный фильтр.   -  person Funk    schedule 25.05.2019
comment
@Funk спасибо, ваш пост выглядит многообещающе. Я попробую это завтра.   -  person Johan    schedule 26.05.2019