0

別のものをクリックしても、現在の (バインドされた) イベントが発生せず、データ ソースに変更がコミットされTextBoxないのはなぜですか? Myは設定されていないため、デフォルトで WPF は に変更をコミットすると想定しています。LostFocusTextBoxUpdateSourceTriggerLostFocus

マウス クリックの代わりに TAB キーを使用して同じことを行うと、変更が正しくコミットされます。

編集

TextBox同じ親コンテナーに表示される es をクリックするLostFocusと、変更が発生してコミットされることがわかりましたが、画面TextBoxのメインToolBarにある をクリックすると、この問題のある動作が表示されるようです。

編集2

以下の BastiOnWpf の投稿を正解としてマークしましたが、この問題を解決するための同等以上の解決策を見つけました。解決策は、単に設定することです

FocusManager.IsFocusScope="False"

あなたToolBarのXAMLで。

4

1 に答える 1

0

問題は、メニューまたはその内容がクリック/フォーカスされたときに、テキストボックスが実際にはフォーカスを失っていないことです。これは、ツールバーが別の UIContext に存在するためです。もちろん、をに

変更することもできますが、それが常に実行可能な回避策であるとは限りません。UpdateSourceTriggerPropertyChanged

この問題を解決するためのいくつかの方法を次に 示します。 UpdateSourceTrigger==LostFocus を使用したバインディングは、メニューまたはツールバーの操作に対して起動しません。

これは、ツールバーを現在の UI の ViewModel にバインドできない理由でもあります。

于 2013-03-28T11:18:53.183 に答える