#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)
{
}
дайте мне знать, если я неправильно понял ваше требование