私は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」整数を作成することですが、それよりもエレガントなものを探していました。