TabControl在Window.Show上丢失选定的选项卡

时间:2012-02-02 21:15:54

标签: wpf selection tabcontrol reset show-hide

我们有一个MVVM(Cinch)解决方案,其中包含一个带TabControl的Window。 ItemsSource绑定到CollectionView(从ObservableCollection生成的DefaultView),IsSynchronizedWithCurrentItem = true。第一次加载窗口时,一切都很好......标签正确显示,用户可以在它们之间切换。

隐藏窗口并再次显示时会出现问题。无论CollectionView中的CurrentItem是什么,始终再次选择第一个选项卡。 .Show之前的行将CurrentItem作为我们想要的标签,但是标签在.Show操作期间切换。

还有其他人遇到过这个问题吗?

1 个答案:

答案 0 :(得分:1)

这绝对是一个黑客攻击。但是您可以覆盖Activated事件并在重置之前存储选项卡索引,并在重新激活时再次设置它。

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