添加新的 TabItem 时更改 TabControl SelectedIndex



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

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

但这不起作用,因为新的 TabItem 是在执行链接到我的按钮单击的所有函数后创建的。因此,当我更改选定索引时,尚未创建新的选项卡项。

我在 TabControl 类上搜索了一个触发器事件,比如"WhenItemsChange",但我什么也没找到。

感谢您的帮助,如果不清楚,请深表歉意。

您可以创建默认选择的选项卡项。

如果ti已经是 TabItem,只需写

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

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

<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));
}

最新更新