Wie erzwinge ich ein TextChanged-Ereignis in einer WPF-TextBox und behalte den Fokus bei?

7

Ich erstelle eine numerische TextBox in WPF mit zwei Schaltflächen zum Erhöhen und Verringern des Werts.

Ich habe zwei RoutedCommand erstellt, um den Behiavor zu verwalten, und sie funktionieren gut. Es gibt nur ein Problem, das ich gerne lösen würde. Ich möchte, dass das Steuerelement alle Objekte benachrichtigt, die an seine TextProperty gebunden sind, wenn ein Befehl zum Erhöhen oder Verringern ausgeführt wird.

Im Moment sendet es die Benachrichtigung nur, wenn ich den Fokus auf ein anderes Steuerelement ändere

Jede Hilfe wird wirklich geschätzt, Danke

    
Drake 30.03.2010, 14:13
quelle

3 Antworten

11

Benutze UpdateSourceTrigger="Explicit" im Binding und in TextChanged event aktualisiere die BindingSource . also schreibst du so etwas:

%Vor%

gefällt mir stattdessen

%Vor%

und in TextChanged Event-Handler aktualisieren die Bindung.

%Vor%

und das ist fertig. Hoffe es hilft !!

    
viky 30.03.2010, 17:55
quelle
25

Es gibt einen einfachen Weg:

%Vor%

(Ich habe es auf TextBox getestet). Viel Glück

    
Shaipod 02.03.2011 14:48
quelle
2

Das Standardverhalten für die Bindung der Eigenschaft Text in TextBox besteht darin, dass sie auf LostFocus aktualisiert wird. Sie können dies in Ihrem benutzerdefinierten Steuerelement ändern, indem Sie die Metadaten für TextProperty in Ihrem statischen ctor überschreiben:

%Vor%     
Abe Heidebrecht 30.03.2010 21:13
quelle

Tags und Links