У меня есть шаблон ComboBox
, который в основном действует как простая цветовая палитра. Он заполняется списком SolidColorBrush
объектов.
У меня также есть некоторые данные, которые содержат шестнадцатеричное значение текущего цвета, и конвертер, который преобразует гекс в SolidColorBrush
.
Я пытаюсь установить свойство SelectedItem
для ComboBox
на основе цвета из моего источника данных. Так как моя комбинация заполнена объектами типа SolidColourBrush
, а конвертер привязки возвращает SolidColorBrush
, я предположил, что это будет так просто, как сказать:
SelectedItem="{Binding Color, Converter={StaticResource StringToBrush}}"
Однако ... это не работает: (
Я проверил, что привязка работает за кулисами, используя точно такое же значение для свойства Background ComboBox
.
Итак, ясно, что я не могу просто сказать SelectedItem = [что-то], где это [что-то] в основном является объектом, равным элементу, который я хочу выбрать.
Как правильно это сделать? Конечно, это возможно в XAML-стиле с использованием привязки, и мне не нужно делать какой-то неприятный C #, перебирающий все элементы в выпадающем списке, пытаясь найти совпадение (которое кажется ужасно старым) ...?