2009-06-05 8 views
0

WPF用の複合アプリケーションライブラリを使用し始めました。私のシェルには、さまざまなタイプのビューを表示するために使用されるタブコントロール内の領域があります。私はまた、例えば、保存するために、コマンドに接続されたボタンを備えたツールバーを持っています。コマンドは私のビューにバインドされ、ビューにはcanExecuteメソッドとexecuteメソッドがあります。WPFコンポジットアプリケーション - タブ領域 - フォーカスが得られないビュー

アイデアは、タブをクリックすると、ビュー内のメソッドに応じてツールバーのボタンを有効または無効にする必要があるということです。問題は、タブを切り替えてビューにフォーカスが得られず、そのビューのcanExecuteが呼び出されない場合です。ツールバーのボタンは、以前に選択したビューのコマンドに接続したままになり、実際に新しいビューをクリックするまでその方法を思い出させます。

現在、ビューを強制的にフォーカスする方法がわかりません。タブのSelectionChangedとそこにフォーカスを設定するときにタブのコンテンツを見てみましたが、違いはありません。何か案は?

答えて

0

View.Loadedイベントをリスンしてから、ハンドラでView.focus()を呼び出してください。要素が初期化されて読み込まれる前に、Wpfはフォーカス要求を受け付けません。ビューがロードされる前にSelectionChangedイベントが発生するので、フォーカス要求は無視されます。ロードされたイベントは、要素が非表示になった後に表示されるたびに呼び出されます。


フォーカスの詳細については、このブログ記事を参照してください。

http://www.julmar.com/blog/mark/PermaLink,guid,6e4769e5-a0b3-47b2-a142-6dfefd0c028e.aspx

+0

私はここに詳細を追加しました:http://stackoverflow.com/a/36345970/37899 –

関連する問題