2009-10-12 4 views
0

У меня есть диалог, который позволяет пользователю выбрать пользовательский значок. Загруженные значки отображаются в выпадающем списке, в котором пользователь делает выбор. Вот код XAML для выпадающего списка:BitmapFrame в WPF ComboBox

<ComboBox 
    Style="{DynamicResource IconComboBox}" 
    ItemTemplate="{StaticResource IconTemplate}" 
    ItemsSource="{Binding Icons, 
     RelativeSource={RelativeSource FindAncestor, 
      AncestorType={x:Type UserControl}}}" 
    SelectedItem="{Binding Icon}" 
    /> 
  • Иконки это свойство, которое возвращает массив BitmapFrame.
  • Значок - это свойство для выбранного в настоящее время.

В настоящее время не работает то, что когда я с помощью кода, установленного для установки свойства Icon (например, при отображении того значка, который пользователь выбрал в последний раз, когда был показан диалог), выбор Combobox просто пуст. Как будто я установил свойство null перед вызовом OnPropertyChanged.

Моя нынешняя теория заключается в том, что WPF не может сравнивать BitmapFrames, поэтому при прохождении через список он не может определить ни одну из икон там «равно» и, следовательно, принимает значение null.

Вкратце; Каков наилучший способ использования кода позади набора текущего выбранного элемента, который является BitmapFrame, в combobox?

ответ

0

Вы можете использовать SelectedItem или SelectedIndex в коде позади, чтобы установить текущий выбранный элемент!