使用当前项目的可观察收集?

时间:2009-08-20 16:24:25

标签: c# wpf observablecollection

在我的应用程序的对话框中,我有一个可观察的集合(存储在其他地方)绑定到选项卡列表。当我关闭并重新打开对话框时,当前选择的选项卡会丢失,并且会成为第一个选项卡。如何设置选项卡以使选定的选项卡保持不变?

我的印象是可观察集合具有“当前项目”属性,但似乎并非如此。我看过ItemCollection和CollectionView,它们有一个当前的item属性,但我不确定那是否是我感兴趣的。

2 个答案:

答案 0 :(得分:3)

这是一个老问题,但我会回答那些可能正在寻找的人......

我使用MVVM模式处理这个问题的方法是在我的ViewModel上有TabControl绑定其ItemsSource的ObservableCollection以及TabControl绑定其SelectedItem属性的ActiveItem属性。

它工作得很好并且保留了MVVM的设计原则(即,ViewModel不应该知道视图)。

答案 1 :(得分:1)

在对话框的Closing事件中,保存当前选定的TabItem

在对话框的Loaded事件中,只需说:

yourTabControl.SelectedItem = _savedTab;

代码隐藏是实现此目的的最简单方法。 ObservableCollection不会帮助你。