У меня есть TabControl в WPF. Я хочу найти событие, которое происходит при изменении вкладок. Как называется это событие?
Событие TabChanged TabControl в WPF
Ответ 1
TabControl
наследует от Selector
, который содержит событие SelectionChanged
.
<TabControl SelectionChanged="OnSelectionChanged" ... />
private void OnSelectionChanged(Object sender, SelectionChangedEventArgs args)
{
var tc = sender as TabControl; //The sender is a type of TabControl...
if (tc != null)
{
var item = tc.SelectedItem;
//Do Stuff ...
}
}
Ответ 2
Я просто хочу добавить свою мысль. И я буду использовать классный ответ @pratap k, чтобы сделать это.
<TabControl x:Name="MyTab" SelectionChanged="TabControl_SelectionChanged">
<TabItem x:Name="MyTabItem1" Header="One"/>
<TabItem x:Name="MyTabItem2" Header="2"/>
<TabItem x:Name="MyTabItem3" Header="Three"/>
</TabControl>
private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (MyTabItem1 !=null && MyTabItem1.IsSelected)
// do your staff
if (MyTabItem2 !=null && MyTabItem2.IsSelected)
// do your staff
if (MyTabItem3 !=null && MyTabItem3.IsSelected)
// do your staff
}
Как вы видите, разница заключается в добавлении проверки для NULL
.
Вот и все!
Ответ 3
Я не получил выбранный ответ для работы, возможно, что-то изменилось, возможно, моя настройка отличается.
Мои решения просты, вы отправляете отправителя в tabControle. Затем вы вытаскиваете выбранный TabItem (selectedValue) и передаете его в TabItem.
В моей ситуации мне нужно знать, кто изменился, поэтому я ищу имя TabItem, чтобы лучше реагировать на конкретное событие.
XAML
<TabControl SelectionChanged="OnTabItemChanged">
<TabItem Name="MainTap" Header="Dashboard"></TabItem
</TabControl>
С#
private async void OnTabItemChanged(object sender, SelectionChangedEventArgs e)
{
TabControl tabControl = sender as TabControl; // e.Source could have been used instead of sender as well
TabItem item = tabControl.SelectedValue as TabItem;
if (item.Name == "MainTap")
{
Debug.WriteLine(item.Name);
}
}
Ответ 4
у меня есть один вопрос. Когда я использую selectionChanged, я не использую selectedItem. Есть ли способ это исправить? Спасибо