Having TextChanged Event Fire Immediately as Text is Typed into TextBox
Asked Answered
P

3

15

On a wpf TextBox that has an TextChanged event, it seems to only fires when focus is taken away from the textbox; but not as individual characters are typed in.

Is there an event similar to TextChanged that fires immediately when a character is typed into the textbox, rather than when focus changes?

Plumbaginaceous answered 18/1, 2012 at 15:11 Comment(0)
P
28

You can bind the Text property and make use of the UpdateSourceTrigger.

UpdateSourceTrigger=PropertyChanged

By setting it to PropertyChanged, you will get a notification each and every time the text changes.

Presidentelect answered 18/1, 2012 at 15:16 Comment(2)
Plz help. I had the same issue, and on the debugger the bounded property seems to return the correct value, but the textbox is not refreshed with it. Our use case is that we reject the user's input, and want to leave the previous value.Cathrine
This is compilable -> without quotes, like this: <TextBox Text="{Binding YourProperty, UpdateSourceTrigger=PropertyChanged}" />Gordy
W
12

TextChanged does fire as soon as the text is changed.

(If you have a binding on Text that is not the same thing, it is completely independent from the event.)

Wabble answered 18/1, 2012 at 15:53 Comment(0)
P
2

@Anron answer is correct but i think it works only when we are doing Data binding (using MVVM).

From @thecorp question what i have understood is he is trying to it in code behind file.

You can take advantage of "KeyDown" and "KeyUp" events of textbox or if you are using data binding Aaron anwer should resolve your issue.

Plenty answered 18/1, 2012 at 15:23 Comment(1)
"works only when we are doing Data binding" => Works on all Data binding, not just under an MVVM situation.Crosspollination

© 2022 - 2024 — McMap. All rights reserved.