【发布时间】:2020-04-05 15:47:04
【问题描述】:
我制作了一个按钮来在我的 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”,但我什么也没找到。
感谢您的帮助,如果不清楚,请见谅。
【问题讨论】:
-
您可以尝试使用
OnItemsChanged方法,并将IsSelected设置为新添加的标签项 -
我不知道这个方法,你能更精确一点吗?
-
tabControl和MainWindow.tc是否引用相同的 TabControl?tabControl.SelectedItem = ti;呢? -
是的,它指的是同一个 TabControl,我进行了编辑,所以它更清晰。
tabControl.SelectedItem = ti也不起作用。因为和之前一样的问题,TabItem 直到函数结束才完全创建。 -
例如,我尝试在
button.MouseLeftButtonUp中添加MainWindow.tc.SelectedItem = ti;而不是button.MouseLeftButtonDown,并且成功了。但这不是我想要的。