所选选项卡项工作不正常

本文关键字:工作 不正常 选项 | 更新日期: 2023-09-27 18:29:24

我有一个包含三个TabItemsTabControl。我在每个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时发生的事情进行编程?

所选选项卡项工作不正常

我将使用不同的方法。你可以像这样使用TabControl的void SelectionChanged事件:

XAML:

<TabControl x:Name="testTab" SelectionChanged="TabControl_SelectionChanged">

代码背后:

void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
  // you can use testTab.SelectedItem here or youtTab.IsSelected
}