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