Editierbare ComboBox
Erstellen Sie editierbare combo-box mit den folgenden Eigenschaften:
- Binden Sie die Eigenschaft text auf meine Daten-Modell.
- Das Datenmodell überschreiben Sie die änderungen in der GUI, auch in der Auswahl geändert. E. g. Ich kann wählen zwischen 1, 2, 3 I 2 auswählen, aber einige Komponente "down under" geändert 3.
- Aktualisieren Sie den Daten-Modell auf der folgenden Ereignisse:
- Auswahl Geändert
- Den Fokus verlieren
- Enter gedrückt (sollte identisch verhält Fokus verloren).
Habe ich in der Lage zu schaffen, wie die Kontrolle, aber es ist ziemlich hässlich (mit vielen hacks) und ich hatte gehofft es gibt eine einfachere Weise...
Vielen Dank im Voraus
InformationsquelleAutor | 2009-02-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok, ich hier ist, was ich getan habe, und das ist nicht hässlich:
InformationsquelleAutor
Der einfachste Weg, dies zu tun ist, verwenden Sie die UpdateSourceTrigger-Eigenschaft der Bindung. Sie sind möglicherweise nicht in der Lage, mit Ihrem aktuellen Verhalten genau, aber Sie können finden, dass es vergleichbar ist.
Die UpdateSourceTrigger-Eigenschaft steuert, wenn das Ziel des binding updates der Quelle. Verschiedene WPF-Steuerelemente haben verschiedene default-Werte für diese Eigenschaft, wenn gebunden.
Hier sind Ihre Optionen:
UpdateSourceTrigger.Default = Ziel-Kontrolle, um zu bestimmen, UpdateSourceTrigger-Modus.
UpdateSourceTrigger.Explizit = Nur update-Quelle wenn jemand anruft BindingExpression.UpdateSource();
UpdateSourceTrigger.LostFocus = Automatisch aktualisieren verbindliche Quelle, wenn der Gegner verliert Fokus. Auf diese Weise kann eine änderung abgeschlossen sein, und dann die Bindung wird aktualisiert, nachdem der Benutzer bewegt sich auf.
UpdateSourceTrigger.PropertyChanged = Wenn das DependencyProperty auf dem Ziel-Werte ändert die Quelle wird aktualisiert, sofort. Die meisten Benutzersteuerelemente nicht Standard, um diese Eigenschaft, weil es erfordert mehr binding updates (kann ein performance-Problem).
InformationsquelleAutor Josh G