Ich habe eine ComboBox
eingerichtet wie folgt, wobei KVPList
ist eine IList
(von KeyValuePair
wenn es darauf ankommt):Binden eines ComboBox in eine IList und unter Verwendung SelectedValue
comboBox.DisplayMember = "Value";
comboBox.ValueMember = "Key";
comboBox.DataSource = KVPList;
I haben dann eine Bindung mit SelectedValue
einzurichten an eine BindingSource
(an eine DataSet
) binden. Aus irgendeinem Grund wird das Kombinationsfeld immer leer angezeigt, wenn das Formular angezeigt wird. Es ist jedoch richtig ausgefüllt (die Werte der IList
zeigen gut und können ausgewählt werden).
Nun habe ich mein Bestes versucht, um durch zu verfolgen, und es scheint zunächst SelectedValue korrekt zu setzen, wenn gebunden, aber dann irgendwo auf dem Weg wird es auf null
zurückgesetzt. Ich habe mit der Reihenfolge gespielt, in der die Dinge aufgerufen werden, ohne Erfolg.
Kann jemand etwas Licht darauf werfen oder einen Workaround vorschlagen?
Für die Aufzeichnung, auf dem gleichen Formular, habe ich eine andere ComboBox
auf dem gleichen Formular, mit seiner SelectedValue
an die gleiche BindingSource
gebunden. Das DataSource
ist ein DataSet
, kein IList
und es funktioniert wie ein Charme. Es könnte eine Option sein, aus der IList
eine DataTable
zu machen, aber es scheint wie eine ganze Menge zusätzlicher Overhead; Ich erstelle die IList
von einer Aufzählung.
Danke für Ihre Antwort. Ich stieß auf das gleiche Problem. Mein Abhängigkeitseigenschaftstyp war IList, der an einen ILIst gebunden war. (Foo implementiert IFoo). Alles schien zu funktionieren, außer der Wert der Abhängigkeitseigenschaft war immer null. Keine Ausnahmen oder Debug-Ausgabe. Als ich den Abhängigkeitseigenschaftentyp in IList änderte, fing alles an zu arbeiten. –