У меня есть диалог, который позволяет пользователю выбрать пользовательский значок. Загруженные значки отображаются в выпадающем списке, в котором пользователь делает выбор. Вот код XAML для выпадающего списка:
<ComboBox
Style="{DynamicResource IconComboBox}"
ItemTemplate="{StaticResource IconTemplate}"
ItemsSource="{Binding Icons,
RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type UserControl}}}"
SelectedItem="{Binding Icon}"
/>
- Значки - это свойство, которое возвращает массив BitmapFrame .
- Значок - это свойство для выбранного в данный момент.
Что в настоящее время не работает, так это то, что, когда я с помощью кода устанавливаю свойство Icon (например, при отображении того, какой значок пользователь выбрал в последний раз, когда отображалось диалоговое окно), выбор в поле со списком остается пустым. Как будто я установил свойство в null перед вызовом OnPropertyChanged.
Моя текущая теория заключается в том, что WPF не может сравнивать BitmapFrames, поэтому при просмотре списка ему не удается определить какие-либо значки там "равными" и, следовательно, предполагается, что значение равно нулю.
Короче говоря; Каков наилучший способ сквозного кодирования установить текущий выбранный элемент, который является BitmapFrame, в комбинированном списке?