2017-08-24 7 views
0

私の目標は、ユーザーがウィンドウを閉じようとしたときにウィンドウにメッセージボックスを表示し、フィールドに変更が加えられた場合です。私はラップを使用してオブジェクトを包む(NotifyDataErrorInfoBaseインターフェイスを継承しています)、画面に表示され、コマンドバインディングとウィンドウ終了イベントでの終了動作を使用するとすべて正常に動作します。IsChanged IChangeTrackingがウィンドウで起動しないWPF MVVMを閉じます。MVVM C#

私の問題は、ウィンドウが最初に開き、テキストボックスにフォーカスが最初にあるときです。テキストボックスに何かを入力し、「X」ボタンをクリックしてウィンドウを閉じると、トラックの変更は機能しません。

テキストボックスに何かを入力し、閉じるボタン(閉じるコマンドにバインドされている)をクリックすると正常に動作します。

ドロップダウンから値を選択し、「X」ボタンをクリックしてウィンドウを閉じると、正常に動作します。

トラッキングの変更は、フィールド上でフォーカスが失われたときや、ボタンをクリックしたときのような別の操作が行われたときに、データがフィールドに確定したときにのみ機能します。これは本当ですか?もしそうなら、TextChangedで変更の追跡を開始することは可能ですか?

答えて

3

PropertyChangedへの結合のUpdateSourceTriggerを設定してください:

<TextBox Text="{Binding YourProperty, UpdateSourceTrigger=PropertyChanged}" /> 

これは、あなたがTextBoxに何かを入力すると、ソースプロパティがすぐに設定取得させる必要があります。

関連する問題