1

まあ、私たちのアプリケーションでは、これは通常うまくいきます。ただし、ある時点で、CanExecuteメソッドはいずれも起動しません(CommandManager.InvalidateRequerySuggested()を明示的に呼び出しても、CanExecuteメソッドは実行されません)。とにかく、実行されないにもかかわらず、すべてfalseに設定されるため、CommandBindingにバインドされているすべてのボタン、メニュー項目などは、メインウィンドウをクリックするまで無効になります。

さて、これを引き起こしている別のウィンドウが疑われます。特定のアクションを実行すると、ウィンドウがポップアップし、次のアクションの後、CanExecuteメソッドを経由せずにすべてのボタンが無効になります。

誰かがそのような行動を見たことがありますか?これを解決する方法についての提案は大歓迎です。

ありがとう。

4

1 に答える 1

1

修正しました。それは私が言及した他のウィンドウに関連していましたが、それは正確にはそうではありませんでした。問題は、前述のウィンドウを非表示にする方法があったことでした。その方法では、メインウィンドウにフォーカスを戻し、それが問題でした。方法や理由はわかりませんが、

App.MainWindow.Focus()

Lineはこの問題を修正しました。したがって、子ウィンドウを閉じたり非表示にしたりするときは常に、メインウィンドウでFocus()メソッドを呼び出さないでください。

ありがとう!

于 2010-08-30T20:14:27.323 に答える