我做了一个按钮来在我的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));
}