TabControl теряет выбранную вкладку в Window.Show - PullRequest
3 голосов
/ 03 февраля 2012

У нас есть решение MVVM (Cinch), в котором есть окно с TabControl. ItemsSource привязан к CollectionView (DefaultView, сгенерированному из ObservableCollection), с IsSynchronizedWithCurrentItem = true. Все отлично работает при первой загрузке окна ... вкладки отображаются правильно, и пользователь может переключаться между ними.

Проблема возникает, когда окно скрыто и отображается снова. Первая вкладка всегда выбирается снова, независимо от того, что является CurrentItem в CollectionView. Строка перед .Show имеет CurrentItem в качестве вкладки, которую мы хотим, но вкладка переключается во время операции .Show.

Кто-нибудь еще сталкивался с этой проблемой?

1 Ответ

1 голос
/ 03 февраля 2012

Это определенно хак. Но вы можете переопределить событие Activated и сохранить индекс вкладки, прежде чем он будет сброшен, и установить его снова при повторной активации.

protected override void OnActivated(EventArgs e)
{
    int tabControlIndex = myTabController.SelectedIndex;
    base.OnActivated(e);
    myTabController.SelectedIndex = tabControlIndex ;
}
...