Caliburn.Micro 프레임 워크가있는 프로젝트에서 VS 스타일의 Tabcontrol (MahApps.Metro 프로젝트에서)을 사용하고 있는데 내 ViewModel을 Conductor.Collection.OneActive에서 상속받은 탭이 닫힐 때를 알 수 있습니다. 불행히도 닫기 버튼은 이미 스타일에 포함되어 있으며 약간 혼란 스럽습니다. MahApps Source 파일에서이 VS Tabcontrol 스타일을 찾아 보았을 때 각 닫기 버튼이 CloseCommmand (Command = "{Binding Path = CloseCommand}")에 바인딩되어 있음을 확인했습니다. 어떻게 그 버튼 클릭에 반응 할 수 있습니까?MahApps Metro- VS 스타일의 Tabcontrol에서 닫기 탭에 적용
2
A
답변
0
닫기 버튼에 DeactivateItem
이벤트를 첨부하십시오.
DeactivateItem
은 도체 클래스로 정의 된 caliburn 마이크로의 프레임 워크 방법입니다. 이 메서드는 연결된 뷰를 닫고 Conductor Collection에서 뷰를 제거합니다.
FYI :
프레임 워크 방법입니다.
public override void DeactivateItem(T item, bool close) {
if(item == null || !item.Equals(ActiveItem))
return;
CloseStrategy.Execute(new[] { ActiveItem }, (canClose, items) => {
if(canClose)
ChangeActiveItem(default(T), close);
});
}
0
CloseTabCommand는 Unloaded 이벤트를 트리거하므로 내 해결 방법은 처리기를 연결하는 것입니다.
public partial class MyTab : MetroTabItem {
public MyTab() {
InitializeComponent();
this.Unloaded += dosomthing;
}
public void dosomething(Object sender, EventArgs e) {
//Your code
}
}