WPF-ComboBoxes können problemlos über Bindungsobjekte an benutzerdefinierte Listen gebunden werden. Allerdings werden SelectedItem
- oder SelectedValue
-Bindungen manchmal nicht korrekt aktualisiert. Dieser Artikel befasst sich mit häufigen Ursachen und Lösungen.
Problem: ComboBox-Bindung wird nicht aktualisiert
Mehrere Faktoren können die Aktualisierung Ihrer ComboBox-Bindung verhindern:
DisplayMemberPath
und SelectedValuePath
geben möglicherweise nicht genau die Eigenschaftsnamen Ihrer benutzerdefinierten Liste wieder.DataContext
, der auf das ViewModel verweist, das Ihre Liste enthält.Lösungen:
Eigenschaftspfade überprüfen:Überprüfen Sie noch einmal, ob DisplayMemberPath
und SelectedValuePath
genau mit den Eigenschaftsnamen Ihrer benutzerdefinierten Liste übereinstimmen. Zum Beispiel:
<code class="language-xml"><ComboBox DisplayMemberPath="Name" ItemsSource="{Binding Path=PhonebookEntries}" SelectedValuePath="PhoneNumber"/></code>
Stellen Sie den korrekten Datenkontext sicher:Bestätigen Sie, dass das DataContext
für die ComboBox (oder ihren Vorfahren) korrekt auf das ViewModel verweist, das Ihre benutzerdefinierte Liste enthält.
Untersuchen Sie das ViewModel: Überprüfen Sie das ViewModel Ihrer benutzerdefinierten Liste gründlich, um sicherzustellen, dass seine Eigenschaften korrekt aktualisiert werden. Implementieren Sie INotifyPropertyChanged
, um UI-Aktualisierungen zu signalisieren, wenn sich Eigenschaftswerte ändern.
Weitere Punkte:
ReadOnlyCollection<T>
für die Eigenschaft PhonebookEntries
in Ihrem ViewModel, um potenzielle Bindungskonflikte mit CollectionView
zu vermeiden.ToString()
-Methode in Ihren benutzerdefinierten Listenobjekten überschreiben, um die angezeigten Werte im ComboBox-Dropdown zu definieren, sodass DisplayMemberPath
nicht mehr erforderlich ist.Dieser Ansatz sollte die meisten Probleme bei der Aktualisierung der ComboBox-Bindung lösen. Denken Sie daran, Ihre Eigenschaftsnamen und DataContext-Einstellungen sorgfältig zu überprüfen.
Das obige ist der detaillierte Inhalt vonWarum wird die SelectedItem/SelectedValue-Bindung meiner WPF-ComboBox nicht aktualisiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!