2011-12-21 3 views
1

탭이 활성, 비활성 및 종료 될 때 캡처하려고합니다. TabControl에는 이러한 scenerios에 대해 트랩 할 수있는 이벤트가없는 것으로 보입니다.WPF TabControl/TabItem 활성, 비활성 및 종료

Google 시스템에서는 사용자가 탭을 빠져 나와 프로그램의 다른 부분으로 이동할 때 "저장"을 클릭해야합니다. (해당 탭의 데이터를 변경 한 경우).

의견이나 제안이 있으십니까? 또는이 기능을 대신 사용할 수있는 다른 컨트롤?

감사합니다,

마이크

답변

0

가있는 TabControl의 이벤트 인 selectionchanged보십시오. 그러면 SelectedItemSelectedIndex 현재 탭의 속성이 표시됩니다.

0

당신이 TabItem에서 파생 된 사용자 정의 클래스가있는 경우, 당신은 탭의 선택과 unselection을 처리 할 수있는 내부의이

public class MyTabItem : TabItem 
{ 
     protected override void OnSelected(RoutedEventArgs e) 
     { 
      base.OnSelected(e); 

     } 


     protected override void OnUnselected(RoutedEventArgs e) 
     { 
      base.OnUnselected(e); 

     } 
} 

을 가정 해 봅시다.

0

당신이 당신의 탭 항목으로 viewmodels의 모음과 더불어, 뷰 모델과 MVVM 패턴을 사용하는 경우에는 다음과 같이 뷰 모델의 ICollectionView에 대한 참조를 유지할 수 :

public ICollectionView MyTabItemsCollectionView{ get; set; } 

을 그 다음에 생성자는, 당신이 그것을

012을 닫는에서 사용자를 방지 할 필요가 무엇이든, 이벤트 핸들러에서,

MyTabItemsCollectionView= CollectionViewSource.GetDefaultView(MyTabItemsCollection); 
MyTabItemsCollectionView.CurrentChanging += MyTabItemsCollectionViewCurrentChanging; 

그런 다음 CurrentChanging 이벤트에 대한 이벤트 핸들러를 설정하고 생성

관련 문제