MVVM 방식으로 WPF 프로젝트를 개발 중입니다.Infragistics WPF TabItemEx의 닫기 이벤트에 바인딩하는 방법?
Observable Collection을 (를) XamTabControl에 바인딩했습니다. Observable Collection에 새 항목을 추가하면 새 탭이 생성됩니다. 그러나 탭을 닫으면 탭 항목이 Observable Collection에서 제거되지 않습니다.
탭에 대한 닫는 이벤트 (또는 닫힌 이벤트)를 트리거 할 수 있으면이 작업을 수동으로 수행 할 수 있습니다. 그러나이 두 사건은 해고되지 않습니다. 그러나 MouseUp과 같은 일부 이벤트가 발생합니다.
<igWindows:XamTabControl
Height="198"
HorizontalAlignment="Left"
Margin="0,54,0,0"
ItemsSource="{Binding Tabs}"
SelectedItem="{Binding SelectedTab}"
Name="xamTabControl1"
VerticalAlignment="Top"
Width="651">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Closing">
<i:InvokeCommandAction Command="{Binding TabCloseCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
<igWindows:XamTabControl.ItemContainerStyle>
<Style TargetType="igWindows:TabItemEx">
<Setter Property="Header" Value="{Binding Header}"/>
<Setter Property="CloseButtonVisibility" Value="{Binding CloseButtonVisibility}"/>
</Style>
</igWindows:XamTabControl.ItemContainerStyle>
<igWindows:XamTabControl.ContentTemplate>
<!-- this is the body of the TabItem template-->
<DataTemplate>
<TextBlock Text="{Binding Content}" />
</DataTemplate>
</igWindows:XamTabControl.ContentTemplate>
</igWindows:XamTabControl>
그리고 이것은 내보기 모델
private ObservableCollection<TabItem> tabs;
private TabItem selectedTab;
private ICommand tabCloseCommand;
public ObservableCollection<TabItem> Tabs
{
get
{
return tabs;
}
set
{
tabs = value;
NotifyPropertyChanged("Tabs");
}
}
public TabItem SelectedTab
{
get
{
return selectedTab;
}
set
{
selectedTab = value;
NotifyPropertyChanged("SelectedTab");
}
}
public ICommand TabCloseCommand
{
get
{
if (tabCloseCommand == null)
{
tabCloseCommand = new RelayCommand(param => this.CloseTab(), null);
}
return tabCloseCommand;
}
}
private void CloseTab()
{
}
예. tabitrol 명령을 tabitem에 바인딩하지 않았습니다. 그래서 코드를 업데이트했지만 작동하지 않았습니다. '<난 : Interaction.Triggers는> <난 : EventTrigger EventName을 = "igWindows : TabItemEx.Closing"> <난 : InvokeCommandAction 명령 = "{CloseTabCommand 바인딩}"/> I : EventTrigger> ' – Haritha
답변을하기 전에 테스트를 해봤지만 작동하지 않았다. EventTrigger를 사용하여이 작업을 수행하는 올바른 방법이 무엇인지, 또는 EventTrigger가 XamTabControl에 첨부 될 때 TabItemEx에서 이벤트를 수신 할 수 있는지 확실하지 않습니다. – alhalama