我有点想通过MVVM使用XamTabControl关闭标签页。当我单击选项卡上的X时,希望它使用DelegateCommand在我的视图模型上运行一个方法,该方法将从我的ObservableCollection中删除该选项卡。我当前正在使用EventTrigger尝试使用TabItemEx.Closed事件,但是当我关闭选项卡时发生的所有事情都是将其从视图中移除,而不是从视图模型中的选项卡集合中移除。我的命令绑定根本不起作用,也从未调用与其关联的方法。如何绑定到视图模型上的命令,以便在关闭选项卡时可以在视图模型上运行方法?
<igWindows:XamTabControl Name="AttachmentsTabControl" ItemsSource="{Binding SelectedAttachments}" SelectedItem="{Binding SelectedAttachment}" Width="400" Height="400" TabLayoutStyle="MultiRowSizeToFit" AllowTabClosing="True" TabItemCloseButtonVisibility="Visible">
<igWindows:XamTabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</igWindows:XamTabControl.ItemTemplate>
<igWindows:XamTabControl.ContentTemplate>
<DataTemplate>
<Image Source="{Binding AttachmentImage}" Width="300" Height="300"/>
</DataTemplate>
</igWindows:XamTabControl.ContentTemplate>
<behaviors:Interaction.Triggers>
<behaviors:EventTrigger EventName="TabItemEx.Closed">
<behaviors:InvokeCommandAction Command="{Binding TabItemClosedCommand}" CommandParameter="{Binding ElementName=AttachmentsTabControl, Path=SelectedItem}"/>
</behaviors:EventTrigger>
</behaviors:Interaction.Triggers>
</igWindows:XamTabControl>
您可以按照RoutedEventTrigger
所述创建here并处理TabItemEx.Closed
附加事件:
<behaviors:EventTrigger EventName="igWindows:TabItemEx.Closed">
EventTrigger
中的System.Windows.Interactivity.dll
类不支持附加事件。