在我的应用程序的对话框中,我有一个绑定到选项卡列表的可观察集合(存储在其他地方)。当我关闭并重新打开对话框时,当前选择的选项卡会丢失并最终成为第一个选项卡。如何设置我的选项卡以使所选选项卡持续存在?
我的印象是可观察集合具有“当前项目”属性,但似乎并非如此。我查看了 ItemCollection 和 CollectionView,它们确实有一个 current item 属性,但我不确定这是否是我感兴趣的。
在我的应用程序的对话框中,我有一个绑定到选项卡列表的可观察集合(存储在其他地方)。当我关闭并重新打开对话框时,当前选择的选项卡会丢失并最终成为第一个选项卡。如何设置我的选项卡以使所选选项卡持续存在?
我的印象是可观察集合具有“当前项目”属性,但似乎并非如此。我查看了 ItemCollection 和 CollectionView,它们确实有一个 current item 属性,但我不确定这是否是我感兴趣的。
这是一个老问题,但我会回答那些可能正在寻找这个的人......
我使用 MVVM 模式处理此问题的方式是在我的 ViewModel 上同时拥有 TabControl 绑定其 ItemsSource 的 ObservableCollection 以及 TabControl 绑定其 SelectedItem 属性的 ActiveItem 属性。
它工作得很好并且保持了 MVVM 的设计原则(即 ViewModel 不应该知道视图)。
如果Closing
出现对话,请保存当前选定的TabItem
.
如果Loaded
出现对话,只需说:
yourTabControl.SelectedItem = _savedTab;
代码隐藏是完成此任务的最简单方法。ObservableCollection
不会帮助你。