Domanda

Ho un dialogo che consente all'utente di scegliere un'icona personalizzata. icone caricate vengono visualizzati in una casella combinata in cui l'utente effettua la selezione. Ecco il codice XAML per il combobox:

<ComboBox 
    Style="{DynamicResource IconComboBox}"
    ItemTemplate="{StaticResource IconTemplate}"
    ItemsSource="{Binding Icons,
        RelativeSource={RelativeSource FindAncestor, 
            AncestorType={x:Type UserControl}}}"
    SelectedItem="{Binding Icon}"
    />
  • Icone è una proprietà che restituisce un array di BitmapFrame .
  • è una proprietà per il momento selezionato.

Quello che attualmente pretende molto lavoro è che quando attraverso il codice dietro impostare la proprietà Icon (ad esempio, quando si visualizza quale icona l'utente scelto l'ultima volta che la finestra è stato mostrato), la selezione Combobox è solo vuota. Come se avessi impostare la proprietà su null prima di chiamare OnPropertyChanged.

La mia teoria attuale è che WPF non si può paragonare BitmapFrames, così quando si cammina attraverso la lista non riesce a stabilire una qualsiasi delle icone lì il "uguale", e quindi assume nulla.

In breve; qual è il modo migliore per tramite codice dietro impostare l'elemento selezionato, che è un BitmapFrame, in un combobox?

È stato utile?

Soluzione

È possibile utilizzare SelectedItem o SelectedIndex nel codice dietro per impostare la voce attualmente selezionata!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top