2009-05-30 10 views
3

Ich lerne, für kompakte Rahmen zu entwickeln, und ich bin auf ein Problem gestoßen, die mich nervt.Aktualisieren Sie Datenbindungen, wenn ein TextBox ändert statt Fokus verliert

Ich habe ein paar Textfelder an einige Eigenschaften gebunden (Vorname & Nachname einer Personenklasse) und haben ein Menüelement, das nur eine showmessage des vollständigen Namens tut, und es funktioniert ziemlich gut, außer dass die Eigenschaften nur aktualisiert werden Sobald die Textbox Verluste konzentrieren. Dies bedeutet, dass wenn ich den Vornamen ändere und den Menüpunkt show name drücke, bekomme ich den alten Wert von Vorname.

Gibt es eine Möglichkeit, ich kann eine Aktualisierung der Datenbindungen erzwingen, oder es so einrichten, dass jedes Mal, wenn ein Zeichen in einem der Textfelder geändert wird, die entsprechende Eigenschaft aktualisiert wird?

Antwort

6

Wenn Sie dies tun, riskieren Sie schlechte Daten in Ihr Datenobjekt setzen, aber hier ist, wie dies zu tun:

In Ihrer MyTextBox.DataBinding.Add() Methode verwenden, um die this overload mit OnPropertyChanged für die DataSourceUpdateMode param anstelle der Standard-OnValidate

Ich sage noch einmal, dass dies eines der Dinge ist, die wirklich einfach klingen, aber auf lange Sicht wahrscheinlich Probleme verursachen werden, da Sie an Daten gebunden sind, die nie validiert wurden.

+0

Dies ist in der Tat arbeiten (danke) speichern tun, wie etwa den Fall, dass ich möchte nur sicherstellen, dass die Textbox mit meinem Objekt synchronisiert ist. Der einzige Weg, an den ich denken kann, ist, den Fokus weg von der Textbox zu bewegen (und vielleicht wieder zurück), ich schätze, es gibt einen saubereren Weg. – Alister

5

Rufen Sie Formulars ValidateChildren() im Code auf die Schaltfläche die

Verwandte Themen