【问题标题】:Closing XamTabControl Tabs Using MVVM & Prism使用 MVVM 和 Prism 关闭 XamTabControl 选项卡
【发布时间】:2019-10-14 10:23:47
【问题描述】:

我在尝试使用 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】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-02
      • 1970-01-01
      • 2020-09-12
      • 2011-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多