我是 WPF 新手,在创建用于更改 TabControl 中的选项卡的事件处理程序时遇到问题。简而言之,我不明白如何找到与事件关联的先前选择的 TabItem 的索引和新选择的 TabItem 的索引。
这是我到目前为止尝试过的代码:
private void primaryFilterChanged(object sender, SelectionChangedEventArgs e) {
if (e.Source is TabControl && IsLoaded) {
int previous_index = (e.RemovedItems[0] as TabItem).TabIndex;
int current_index = (e.AddedItems[0] as TabItem).TabIndex;
...
}
}
但我现在意识到“TabIndex”并不是指我认为它所做的,而是指使用 Tab 键时获得的焦点项目的顺序。
我知道我可以tabcontrol.SelectedIndex
用来获取新索引,但我也需要前一个索引来获取其他功能。非常感谢!
编辑:我使用的解决方法是创建我自己的“selectedTab”整数,它在事件处理程序的末尾更新,但我正在寻找比这更优雅的东西。