2012-03-30 9 views
0

たとえば、 'A'.Xamlと' B'.Xamlの2つのビューがあります。 A.Xamlでは、テキストボックスとB.Xamlがあります。「B」ビューにあるボタンをクリックすると、ボタンがあります。フォーカスは、 'A'.Xaml(View)にあるコントロール(textBox)に設定する必要があります。 。どのようにこれを達成するために。私は多くの方法をフォーカスフォーカス動作、Focuselement、Focusableなど、私は主な問題を参照してください異なる視点でアクションが実行されるとき、異なるビューに存在するコントロールに焦点を設定する方法をお試しください? KrishnaWPFフォーカス動作の問題

答えて

1

BビューからAビューへの参照をどうにかする必要があります。そして、あなたは単にそれに類似B

private void Button_Click(object sender, EventArgs e) 
{ 
    windowA.txtSomeTextBox.Focus(); 
} 

何かにButton上のイベントを使用します。私は実際にあなたのコントロールの名前を知っていないので、それらの部分はおそらく間違っている(私はそれらを推測したので)。


注:これは単なる1つの方法です。たとえば、プリズムフレームワークを使用する場合は、EventAggregatorを使用して、無関係な2つのビュー間でイベントをパブリッシュするか、ButtonをバインドするビューモデルからCommandにパブリッシュすることができますイベントが発生し、サブスクライバ(ビュー)がそのイベントをキャプチャし、実行する必要がある処理を実行します。などなど

0

ような何か試してみてください:あなたはまた、A.xamlへのアクセスを得るためにApplication.Current.MainWindowを試してみたいことがあり

Application.Current.Dispatcher.Invoke(() => 
     { 
      txtSomeTextBox.Focus(); 
     }); 

を。