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?

Foi útil?

Solução

Você pode usar o SelectedItem ou o SelectedIndex no código atrás para definir o item atualmente selecionado!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top