2009-08-20 7 views
0

내 응용 프로그램의 대화 상자에서 관찰 가능한 컬렉션 (다른 곳에 저장 됨)이 탭 목록에 바인딩되어 있습니다. 대화 상자를 닫았다가 다시 열면 현재 선택한 탭이 손실되어 첫 번째 탭이됩니다. 선택한 탭이 지속되도록 탭을 설정하려면 어떻게합니까?현재 항목으로 관찰 가능한 컬렉션?

관찰 가능한 컬렉션에 "현재 항목"속성이 있지만 나는 그럴듯하지 않다는 인상을 받았습니다. ItemCollection과 CollectionView를 살펴 보았습니다. 현재 항목 속성이 있지만 관심이 있는지 확실하지 않습니다.

답변

1

대화 상자의 Closing 이벤트에서 현재 선택한 항목을 저장하지 않습니다. TabItem. 당신의 대화의 Loaded 이벤트에서

, 단순히 말 :

yourTabControl.SelectedItem = _savedTab; 

숨김 코드는이 작업을 수행 할 수있는 가장 쉬운 방법입니다. ObservableCollection은 도움을주지 않습니다.

2

이 오래된 질문이다,하지만 난 사람들이 찾고있을 수도 있습니다에 대한 응답 할 것이다 ...

나는 이것이 MVVM 패턴을 사용하여 처리하는 방법은 내 뷰 모델 상 ObservableCollection에 둘 것이 었습니다되는있는 TabControl에 ItemsSource와 TabControl이 SelectedItem 속성을 바인딩하는 ActiveItem 속성을 바인딩합니다.

MVVM의 디자인 원칙을 잘 유지하고 있습니다 (예 : ViewModel이 뷰를 인식하지 않아야 함).

+1

+1 훨씬 나은 MVVM 중심 접근 방식. 고마워. –

관련 문제