在文本框中输入文本时立即触发TextChanged事件

15

在具有TextChanged事件的WPF TextBox上,它似乎只会在焦点离开文本框时触发;但不是在键入单个字符时触发。

是否有类似于TextChanged的事件,可以在键入字符到文本框时立即触发,而不是在焦点更改时触发?

3个回答

28

您可以绑定Text属性并利用UpdateSourceTrigger

UpdateSourceTrigger=PropertyChanged

将其设置为PropertyChanged,每次文本更改时都会收到通知。


请帮忙。我遇到了同样的问题,在调试器中,绑定的属性似乎返回了正确的值,但文本框没有刷新。我们的用例是拒绝用户的输入,并希望保留先前的值。 - ilans
1
这是可编译的 -> 没有引号,就像这样:<TextBox Text="{Binding YourProperty, UpdateSourceTrigger=PropertyChanged}" /> - sa.he

12

TextChanged事件会在文本改变时立即触发。

(如果您的


2

@Anron的回答是正确的,但我认为它只适用于数据绑定(使用MVVM)。

从@thecorp的问题中,我了解到他正在尝试在代码后台文件中实现它。

您可以利用文本框的“KeyDown”和“KeyUp”事件,或者如果您正在使用数据绑定,Aaron的答案应该可以解决您的问题。


仅在进行数据绑定时才起作用 => 适用于所有数据绑定,不仅限于MVVM情况下。 - ΩmegaMan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接