Ich habe das Caliburn Micro MVVM Framework untersucht, um ein Gefühl dafür zu bekommen, aber ich habe ein kleines Problem. Ich habe eine TextBox an eine String-Eigenschaft in meinem ViewModel gebunden und möchte, dass die Eigenschaft aktualisiert wird, wenn die TextBox den Fokus verliert.
Normalerweise würde ich dies erreichen, indem ich den UpdateSourceTrigger für die Bindung auf LostFocus setze, aber ich sehe keine Möglichkeit, dies in Caliburn zu tun, da die Eigenschaft automatisch für mich gebunden wurde. Derzeit wird die Eigenschaft jedes Mal aktualisiert, wenn sich der Inhalt der TextBox ändert.
Mein Code ist sehr einfach, hier ist zum Beispiel meine VM:
%Vor%Und in meiner Sicht habe ich eine einfache TextBox.
%Vor%Wie kann ich es ändern, sodass die Name-Eigenschaft nur dann aktualisiert wird, wenn die TextBox den Fokus verliert, anstatt jedes Mal, wenn sich die Eigenschaft ändert?
Setzen Sie die Bindung explizit für die Instanz von TextBox
und Caliburn.Micro wird sie nicht berühren:
Alternativ können Sie, wenn Sie das Standardverhalten für alle Instanzen von TextBox
ändern möchten, die Implementierung von ConventionManager.ApplyUpdateSourceTrigger
in der Configure
-Methode Ihres Bootstrappers ändern.
Etwas wie:
%Vor%Tags und Links wpf mvvm caliburn.micro