Questa è la situazione di partenza:WPF ComboBox: Articolo errato viene visualizzato
XAML:
<ComboBox Grid.Row="0"
Grid.Column="1"
Margin="0,3"
HorizontalAlignment="Stretch"
DisplayMemberPath="DisplayText"
ItemsSource="{Binding ObjectSource}" />
ViewModel:
public Collection<MyObjects> ObjectSource
{
get
{
return this.objectSource;
}
set
{
this.SetProperty(ref this.objectSource, value);
}
}
miei oggetti contiene un nome (stringa), valida dal (dateTime) e un displayText (stringa solo get) che combina il nome e valido per la visualizzazione.
In questa situazione facile sono in grado di aprire la casella combinata di vedere tutte le voci, dopo aver selezionato uno anche visualizzare il displaytext proprio all'interno del combobox. Ora apro nuovamente l'area a tendina e seleziono un'altra voce. Il risultato è che l'elemento slittato è stato commutato (come si può vedere l'elemento highligth quando si apre di nuovo la voce del menu a discesa). Ma l'oggetto visualizzato all'interno della casella combinata non viene modificato, c'è ancora il DisplayText della prima selezione.
Qualcuno ha un'idea per me il motivo per cui la casella combinata non aggiorna? Grazie in anticipo
Modifica: Grazie a tutti per il loro aiuto. Il problema era un buggy overriding di Equals.
hai scavalcato Equals? – blindmeis
ho controllato il tuo problema ma nel mio caso tutto funziona perfettamente ... può essere un problema che in qualche modo la tua casella combinata si aggiorna o potrebbe essere la tua raccolta ... basta controllare usando i punti di interruzione .. – loop
assolutamente ogni cosa sta funzionando bene sul mio sistema. – Betty