Вопрос

У меня есть диалог, который позволяет пользователю выбрать собственный значок.Загруженные значки отображаются в поле со списком, в котором пользователь делает выбор.Вот код 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 в коде, чтобы установить текущий выбранный элемент!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top