Вы можете добиться того, что ваш пытаются с помощью MVVM.
В вашем представлении ViewModel у вас есть два свойства: одно свойство удерживает коллекцию всех доступных вкладок и другое свойство, чтобы удерживать текущую выбранную вкладку.
ViewModel
public ObservableCollection<ITabViewModel> Tabs { get; private set; }
public ITabViewModel SelectedTab
{
get { return _selectedTab; }
set
{
_selectedTab = value;
RaisePropertyChanged(() => SelectedTab);
}
}
XAML
<TabControl ItemsSource="{Binding Tabs}"
SelectedItem="{Binding SelectedTab}" />
С выше настройки, свойство SelectedTab в ViewModel обновляется всякий раз, когда вкладка переключатель происходит в представлении.
В качестве альтернативы, если вас интересует только индекс выбранной вкладки. Имейте свойство в ViewModel, чтобы удерживать выбранную вкладку Индекс и привязать ее к свойству SelectedIndex в TabControl.
ViewModel
public int SelectedTabIndex
{
get { return _selectedTabIndex; }
set
{
_selectedTabIndex = value;
RaisePropertyChanged(() => SelectedTabIndex);
}
}
XAML
<TabControl ItemsSource="{Binding Tabs}"
SelectedIndex="{Binding SelectedTabIndex}" />
Доля код вашего TabControl –
Сообщение XAML для полного TabControl и ViewModel. – sthotakura