Не работает фокус вкладки UserControl

#c# #wpf #user-controls #tabs #onfocus

#c# #wpf #пользовательские элементы управления #вкладки #onfocus

Вопрос:

Я получил класс, который расширяет UserControl

У меня в нем есть несколько вкладок, и я хочу распознавать, когда выбрана вкладка, поэтому у меня есть это:

      this.GotFocus  = new RoutedEventHandler(OnGotFocus);

     private void OnGotFocus(object sender, System.EventArgs e)
            {
                if (DataContext != null)
                {
                    ((SomeViewModelClass)DataContext).SetActiveTab();
                }
            }
  

Итак, моя проблема в том, что когда я выбираю вкладку в первый раз, вызывается метод OnGotFocus, однако, когда я выбираю некоторые другие вкладки, возвращаюсь и выбираю ее во второй раз, по какой-то причине он не вызывается, кто-нибудь знает почему?

Заранее спасибо!

Ответ №1:

Вы правильно используете элемент управления вкладками WPF?

Почему ты делаешь this.GotFocus.... ? что this именно в этом случае?

Вам следует сделать что-то подобное, если вы хотите, чтобы GetFocus вас вызывали при выборе Tab .

XAML (примеры вкладок)

   <TabControl>
            <TabItem x:Name="table1"></TabItem>
            <TabItem x:Name="table2"></TabItem>
            <TabItem></TabItem>
        </TabControl>
  

Код, лежащий в основе

 //register event for each individual tab

table1.GotFocus  = new RoutedEventHandler(table1_GotFocus);
table2.GotFocus  = new RoutedEventHandler(table2_GotFocus);

private void table1_GotFocus(object sender, RoutedEventArgs e)
{
}

private void table2_GotFocus(object sender, RoutedEventArgs e)
{

}
  

дайте мне знать, если я неправильно понял ваше требование