В настоящее время я работаю над приложением WPF на основе MVVM.
Я определил UserControl следующим образом:
<UserControl x:Class="TestMockUp.Views.DriveStartupViews.VehicleIdentificationViewModel"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:ViewModels="clr-namespace:TestMockUp.ViewModels.DriveStartupViewModels"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800" d:DataContext="{d:DesignInstance ViewModels:VehicleIdentificationViewModel}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Unloaded">
<i:InvokeCommandAction Command="{Binding PageUnloaded}"/>
</i:EventTrigger>
<i:EventTrigger EventName="Loaded">
<i:InvokeCommandAction Command="{Binding PageLoaded}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
...
</UserControl>
Я пытаюсь подключить командуна Unloaded-событие UserControl.Мне не интересно, закрывается ли окно или приложение.
Я загружаю UserControl по требованию с DataTemplate в окно.Мне нужно зарегистрироваться, если контроль выгружается.Я могу связать его с обработчиком событий в файле xaml.cs, но мне нужно вызвать команду в моей ViewModel.
Триггер для загруженного события срабатывает, но не для незагруженного события.Я предполагаю, что <i:Interaction.Triggers>
уже выгружен до того, как сработает событие, и поэтому его невозможно зарегистрировать никогда.
Я нашел кое-что о AttachedBehaviour, но не могу заставить его работать для Unloaded.
Кто-нибудь знает способ сделать это без получения Nuget-Package или ThirdParty?если я это объявлю) но не команда <i:Interaction.Triggers>