BitmapFrame no WPF ComboBox
-
20-09-2019 - |
Pergunta
Eu tenho uma caixa de diálogo que permite que o usuário escolha um ícone personalizado. Os ícones carregados são exibidos em um ComboBox no qual o usuário faz a seleção. Aqui está o código XAML para o ComboBox:
<ComboBox
Style="{DynamicResource IconComboBox}"
ItemTemplate="{StaticResource IconTemplate}"
ItemsSource="{Binding Icons,
RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type UserControl}}}"
SelectedItem="{Binding Icon}"
/>
- Ícones é uma propriedade que retorna uma variedade de Bitmapframe.
- Ícone é uma propriedade para o atualmente selecionado.
O que atualmente não funciona é que, quando eu, através do código, define a propriedade Icon (por exemplo, ao exibir qual ícone o usuário escolheu na última vez em que a caixa de diálogo foi mostrada), a seleção do ComboBox está apenas em branco. Como se eu tivesse definido a propriedade como NULL antes de ligar para o OnPropertyChanged.
Minha teoria atual é que o WPF não pode comparar os quadros de bitmap; portanto, ao caminhar pela lista, não determina nenhum dos ícones do "igual" e, portanto, assume nulo.
Resumidamente; Qual é a melhor maneira de através do código por trás do Definir o item atualmente selecionado, que é um bitmapframe, em um ComboBox?
Solução
Você pode usar o SelectedItem ou o SelectedIndex no código atrás para definir o item atualmente selecionado!