Наблюдаемая коллекция с текущим предметом? - PullRequest
0 голосов
/ 20 августа 2009

В диалоге из моего приложения у меня есть наблюдаемая коллекция (хранящаяся где-то еще), связанная со списком вкладок. Когда я закрываю и снова открываю диалоговое окно, текущая выбранная вкладка теряется и становится первой. Как настроить вкладки так, чтобы выбранная вкладка сохранялась?

У меня сложилось впечатление, что наблюдаемая коллекция имеет свойство "текущий элемент", но это не так. Я посмотрел на ItemCollection и CollectionView, у которых есть текущее свойство элемента, но я не уверен, что это меня заинтересует.

Ответы [ 2 ]

3 голосов
/ 14 июля 2012

Это старый вопрос, но я отвечу для тех, кто может искать это ...

Способ, которым я справился с этим с использованием шаблона MVVM, заключался в том, чтобы на моей ViewModel была и ObservableCollection, с которой TabControl связывает свой ItemsSource, а также свойство ActiveItem, с которым TabControl связывает свое свойство SelectedItem.

Он работает довольно хорошо и сохраняет принципы проектирования MVVM (т. Е. Модель представления не должна знать о представлении).

1 голос
/ 20 августа 2009

В событии Closing вашего диалога сохраните выбранное в данный момент TabItem.

В событии Loaded вашего диалога просто скажите:

yourTabControl.SelectedItem = _savedTab;

Кодовый код - это самый простой способ сделать это. ObservableCollection вам не поможет.

...