Bezogen auf meine vorherige Frage: Binding ComboBox.SelectedItem in Silverlight
Ich habe eine ComboBox wie folgt gebunden:
%Vor%Sowohl die CurrentVideo-Eigenschaft als auch die CurrentCommentary-Eigenschaft ändern sich regelmäßig. Nach ein paar Mal bekomme ich diesen Fehler:
%Vor%Das scheint mir ein ComboBox-Bug zu sein. Ich kann überprüfen, dass CurrentVideo vor CurrentCommentary geändert wird, daher sollte das ausgewählte Element immer ein Element sein, das sich in der Liste befindet.
Related, ich möchte wirklich nicht den Modus = TwoWay, denn wenn die ItemsSource geändert wird, ist das SelectedItem vorübergehend Null, was in meinem Modell zurückgesetzt wird, was ich eigentlich nicht möchte. Aber die Bindung funktioniert überhaupt nicht (was wie ein anderer Fehler aussieht).
Dies ist ein Fehler im ComboBox-Steuerelement, der mit dem sich ändernden Zeiger der ItemsSource-Bindung zu tun hat. Die Lösung, die ich gefunden habe, ist:
1) Binden Sie die ItemsSource immer an eine beobachtbare Sammlung und setzen Sie den Zeiger des OC niemals zurück.
%Vor%Schlecht:
%Vor%Gut:
%Vor%2) Setzen Sie MyItem = null, bevor Sie MyList löschen
In Ihrem Fall ändern Sie die Referenz der Liste, wenn Sie CurrentView ändern. Daher, wenn SelectedItem nicht null ist, gibt es einen kurzen Moment in dem die ItemsSource zurückgesetzt wird, die Interna der ComboBox versuchen das SelectedItem Objekt in der neuen ItemsSource zu finden, aber das alte Objekt ist nicht da.
Danke für die obigen Vorschläge. In meiner Situation kann ich die "nukleare Option" wählen, dh - wenn das ausgewählte Element geändert werden muss, zerstöre ich die ComboBox vollständig, mache eine neue und setze ihr SelectedItem entsprechend.
Lächerlich, aber es funktioniert.
Ich habe das gleiche Problem vor einer Weile bekommen und von dem, was ich sagen kann, ist es ein Fehler in ComboBox, wenn die ItemSource geändert wird, hat es ein Problem mit dem Layout und scrollt schlecht.
Es gibt ein Problem, indem Sie ComboBox.UpdateLayout zwischen dem Festlegen der ItemSource und SelectedItem aufrufen.
Ich habe vor einer Weile bei über das Problem gebloggt ComboBox in Silverlight .
Ich muss noch überprüfen, ob das Problem in der Silverlight 3 Beta noch existiert
Tags und Links silverlight data-binding combobox selecteditem