使用MVVM和棱镜关闭XamTabControl选项卡

问题描述 投票:0回答:1

我有点想通过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>
c# wpf xaml prism infragistics
1个回答
0
投票

您可以按照RoutedEventTrigger所述创建here并处理TabItemEx.Closed附加事件:

<behaviors:EventTrigger EventName="igWindows:TabItemEx.Closed">

EventTrigger中的System.Windows.Interactivity.dll类不支持附加事件。

© www.soinside.com 2019 - 2024. All rights reserved.