繁体   English   中英

添加新 TabItem 时更改 TabControl SelectedIndex

[英]Changing TabControl SelectedIndex when adding a new TabItem

我做了一个按钮来在我的 TabControl 中添加一个新的 TabItem。 它工作正常,但是当我添加一个新的 TabItem 时,我希望 SelectedIndex 位于新的 TabItem 上。 的代码

private void AddNewTabItem(object sender, MouseButtonEventArgs e)
    {
        ...
        tabControl.Items.Add(tabItem);
        tabControl.SelectedIndex = tabControl.Items.Count - 1;
    }

但这不起作用,因为在执行链接到我的按钮单击的所有函数之后创建了新的 TabItem。 因此,当我更改 SelectedIndex 时,尚未创建新的 TabItem。

我在 TabControl 类上搜索了一个 triggerEvent,比如“WhenItemsChange”,但我什么也没找到。

感谢您的帮助,如果不清楚,请见谅。

您可以创建默认选中的 TabItem。

如果ti已经是 TabItem,只需写

ti.IsSelected = true;
tabControl.Items.Add(ti);

如果没有,请为 TabControl 的ItemContainerStyle分配适当的 Style :

<TabControl x:Name="tabControl">
    <TabControl.ItemContainerStyle>
        <Style TargetType="TabItem">
            <Setter Property="IsSelected" Value="True"/>
        </Style>
    </TabControl.ItemContainerStyle>
</TabControl>

尝试这个:

private void AddNewTabItem(object sender, MouseButtonEventArgs e)
{
    ...
    tabControl.Items.Add(ti);
    Dispatcher?.BeginInvoke((Action)(
            () => tabControl.SelectedIndex = tabControl.Items.Count - 1));
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM