2012-03-30 13 views
0

Ich habe zwei Ansichten für z.B. 'A'.Xaml und' B'.Xaml. In A.Xaml habe ich eine Textbox und B.Xaml Ich habe eine Schaltfläche, beim Klicken auf Schaltfläche in der 'B' Ansicht sollte der Fokus auf das Steuerelement (TextBox) in 'A'.Xaml (View) gesetzt werden . Wie ich dies erreichen kann. Ich habe viele Möglichkeiten versucht, Fokus-Verhalten, Fokus-Element, fokussierbar usw., sehe ich das Hauptproblem ist, wie Fokus auf Kontrolle in verschiedenen Ansicht, wenn Aktion in anderen Ansicht durchgeführt wird? Bitte antworten Sie. Danke im Voraus KrishnaWPF Fokus Verhalten Problem

Antwort

1

Sie müssen irgendwie einen Verweis auf die A Ansicht von innerhalb Ihrer B Ansicht haben. Dann einfach Sie ein Ereignis auf dem Button in B

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

Etwas ähnlich der Verwendung. Ich weiß eigentlich nicht, wie Sie Ihre Steuerelemente benannt haben, also sind diese Teile wahrscheinlich falsch (seit ich sie erraten habe).


Beachten Sie, dass dies nur eine Möglichkeit ist. Es gibt viele andere Möglichkeiten, um es zu tun, zum Beispiel ... wenn Sie das Prism-Framework verwenden, können Sie ein EventAggregator verwenden, um ein Ereignis zwischen zwei Ansichten zu veröffentlichen, die nicht verwandt sind, oder von einem Ansichtsmodell, das die Button an eine Command bindet Ereignis und der Abonnent (die Ansicht) erfasst dieses Ereignis und tut, was es tun muss. Etc. etc.

0

Versuchen Sie so etwas wie:

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

Sie auch Application.Current.MainWindow Möchten Sie folgendes versuchen Zugang in A.xaml zu gewinnen.