我有TabControl
,其中包含三个TabItems
。我在每个TabItem
都有一个标签,所以我可以对点击事件进行编程,它看起来像这样;
<TabItem.Header>
<Label Content="People" HorizontalAlignment="Stretch" FontSize="14" MouseLeftButtonDown="TabItemClick"/>
</TabItem.Header>
我想对TabItem
点击进行编程,以便根据选择的TabItem
发生某些事情,所以我写了这样的内容;
private void TabItemClick(object sender, MouseButtonEventArgs e)
{
var privilegeService = new PrivilegeService();
if (companyTabItem.IsSelected == true)
{
generateCompanyPrivilegesButton.IsEnabled = true;
applyCompanyPrivilegesButton.IsEnabled = false;
}
else if (peopleTabItem.IsSelected == true)
{
MessageBox.Show("People Selected");
generatePeoplePrivilegesButton.IsEnabled = false;
applyPeoplePrivilegesButton.IsEnabled = false;
}
else if (contractTabItem.IsSelected == true)
{
generateContractsPrivilegesButton.IsEnabled = false;
applyContractsPrivilegesButton.IsEnabled = false;
}
}
正如您所看到的,我在MessageBox
中添加了一些测试用途,以查看何时选择了TabItem
。 MessageBox
仅在我离开peopleTabItem
后显示,而不是在我点击它时显示。如何更改此设置,以便我可以对点击TabItem
时发生的事情进行编程以及何时选择它?
答案 0 :(得分:2)
我将采用不同的方法。你可以使用TabControl void TabCtrol的SELECTChanged事件,如下所示:
XAML:
<TabControl x:Name="testTab" SelectionChanged="TabControl_SelectionChanged">
代码背后:
void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
// you can use testTab.SelectedItem here or youtTab.IsSelected
}