2012-01-18 13 views
12

wpf TextBoxがあり、TextChangedイベントが発生しました。問題は、このイベントはフォーカスがテキストボックスから取り除かれたときにのみ発生することです。テキストが入力された直後にTextBox.TextChangedが発生する

TextChangedに似たイベントがありますが、フォーカスが変更されたときではなく、文字がテキストボックスに入力されたときにが直ちにになりますか?

答えて

23

TextプロパティをバインドしてUpdateSourceTriggerを使用することができます。

UpdateSourceTrigger=PropertyChanged 

PropertyChangedに設定すると、テキストが変更されるたびに通知が届きます。

+0

Plzをヘルプ。私は同じ問題を抱えていましたが、デバッガ上では、バウンドプロパティは正しい値を返すようですが、テキストボックスはそれでリフレッシュされません。私たちのユースケースは、ユーザーの入力を拒否し、前の値を残したいということです。 – ilans

+0

これは次のように引用符なしでコンパイル可能です: sam

2

@Anron答えは正しいですが、私はデータバインディング(MVVMを使用して)を行っているときにのみ動作すると思います。

@thecorp質問から、私は彼がファイルの裏にコードでそれを試していることを理解しています。

テキストボックスの "KeyDown"と "KeyUp"イベントを利用することができます。データバインディングを使用している場合は、Aaron anwerが問題を解決するはずです。

12

TextChangedは、テキストが変更されるとすぐに発生します。

は(あなたがTextに結合している場合は、イベントから完全に独立して、ない同じものであること。)

関連する問題