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