首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在标准WPF选项卡控件中是否存在选定的选项卡更改事件

在标准WPF选项卡控件中是否存在选定的选项卡更改事件
EN

Stack Overflow用户
提问于 2009-04-21 14:26:36
回答 9查看 127.1K关注 0票数 104

在WPF中,是否有一个事件可用于确定TabControl的选定选项卡何时更改?

我试过使用TabControl.SelectionChanged,但是当一个选项卡中的孩子的选择发生变化时,它会被触发很多次。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2009-04-21 14:49:48

我把这个绑定到处理程序中,让它正常工作:

代码语言:javascript
复制
void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    if (e.Source is TabControl)
    {
      //do work when tab is changed
    }
}
票数 134
EN

Stack Overflow用户

发布于 2010-07-02 00:25:34

如果将每个TabItemx:Name属性设置为:

代码语言:javascript
复制
<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>

然后,您可以在活动中访问每个TabItem

代码语言:javascript
复制
private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    if (MyTabItem1.IsSelected)
    // do your stuff
    if (MyTabItem2.IsSelected)
    // do your stuff
    if (MyTabItem3.IsSelected)
    // do your stuff
}
票数 85
EN

Stack Overflow用户

发布于 2014-02-27 16:02:55

如果您只想在选择选项卡时有一个事件,这是正确的方式:

代码语言:javascript
复制
<TabControl>
    <TabItem Selector.Selected="OnTabSelected" />
    <TabItem Selector.Selected="OnTabSelected" />
    <TabItem Selector.Selected="OnTabSelected" />
    <!-- You can also catch the unselected event -->
    <TabItem Selector.Unselected="OnTabUnSelected" />
</TabControl>

在你的代码中

代码语言:javascript
复制
    private void OnTabSelected(object sender, RoutedEventArgs e)
    {
        var tab = sender as TabItem;
        if (tab != null)
        {
            // this tab is selected!
        }
    }
票数 55
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/772841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档