2012-03-30 5 views
0

예를 들어 'A'.Xaml 및'B'.Xaml과 같은 두 가지보기가 있습니다. A.Xaml에는 텍스트 상자와 B.Xaml이 있습니다. 'B'보기에있는 단추를 클릭 할 때 'A'에있는 컨트롤 (textBox)에 포커스를 설정해야합니다. Xaml (보기) . 이것을 달성하는 방법. 나는 포커스 동작, 포커스 요소, 포커스 가능 등 여러 가지 방법을 시도했다. 주요 문제는 다른 관점에서 컨트롤이 포커스를 설정하는 방법이다. 다른 시점에서 동작이 수행 될 때 응답해야한다. 사전에 감사한다. KrishnaWPF 포커스 동작 문제

답변

1

B보기에서 A보기에 대한 참조가 필요합니다. 그럼 당신은 단순히 유사 B

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

뭔가에 Button에 이벤트를 사용합니다. 당신이 컨트롤을 명명 한 것을 실제로 알지는 못하기 때문에 (아마도 내가 추측 한 이후로) 그 부분은 틀릴 것입니다.


참고로 이는 단지 한 가지 방법 일뿐입니다. 예를 들어 프리즘 프레임 워크를 사용하는 경우에는 서로 관련이없는 두 개의보기 또는 Button을 게시하는 Command에 바인드하는 뷰 모델에서 이벤트를 게시하는 데 EventAggregator을 사용할 수 있습니다. 이벤트와 구독자 (보기)는 해당 이벤트를 캡처하고 수행해야 할 작업을 수행합니다. 등 등

0

과 같이하십시오 : 당신은 또한 A.xaml에 액세스 할 Application.Current.MainWindow을 시도 할 수 있습니다

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

합니다.