ComboBox nicht automatisch aktualisieren, wenn die Datenquelle ändert?
Aus irgendeinem Grund beim hinzufügen oder entfernen von Elementen aus der Datenquelle (eine einfache BindingList) die ComboBox entsprechend aktualisiert, aber wenn ich ein Element Bearbeiten, wie dieser, ist es nicht automatisch aktualisieren:
myBindingList[index].Name = "NewName";
myBindingList[index].Value = newValue;
Um es zu aktualisieren, wenn ich ein Element Bearbeiten im Gegensatz zum anlegen oder entfernen eines Elements, die ich habe, um dies zu tun, nachdem die änderung vorgenommen wird:
myComboBox.DataSource = null;
myComboBox.DataSource = myBindingList;
Dieser behebt das problem, aber wie es scheint, eine eher chaotisch-Lösung. Auch mit großen Listen kann es langsam (vorzeitige Optimierung, die ich kenne), aber immer noch gibt es eine Möglichkeit zu zwingen, die ComboBox zu aktualisieren, ohne Sie komplett neu zuweisen der DataSource?
Vielen Dank für das Lesen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
so steht es in den MSDN-Foren:
Sie sagen, Sie sind mit BindingList und in der Tat Sie tun, um die combobox zu reflektieren, Elemente hinzufügen oder entfernen und Veranstaltungen. Ich denke, Sie sollten tun, die Aktualisierung der Elemente, die sich bereits in Ihrem BindingList in einem anderen Weg, weil sieht aus wie die richtige BindingList events werden nicht gefeuert.
können Sie entweder untersuchen oder einfach live mit zurücksetzen und neu zuweisen der DataSource, ich glaube nicht, dass ist zu schlecht, Sie sind in Zustandsbehaftete Windows Forms-Anwendung nicht in SatetLess Webforms-so haben Sie Ihre Objekte dort die ganze Zeit 🙂
Müssen Sie sichtbare Sammlungen und IPropertyChange Umsetzung:
ComboBox an eine ObservableCollection nicht aktualisieren