Закрытие вкладок XamTabControl с использованием MVVM и Prism - PullRequest
0 голосов
/ 14 октября 2019

Я немного застрял, пытаясь заставить вкладки закрываться с помощью XamTabControl, используя MVVM. Когда я нажимаю 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>

1 Ответ

0 голосов
/ 14 октября 2019

Вы можете создать RoutedEventTrigger как описано здесь и обработать прикрепленное событие TabItemEx.Closed:

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

Класс EventTrigger в System.Windows.Interactivity.dll не поддерживаетприкрепленные события.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...