diff --git a/ModernKeePass/ViewModels/MainVm.cs b/ModernKeePass/ViewModels/MainVm.cs
index 686538d..29e3e3a 100644
--- a/ModernKeePass/ViewModels/MainVm.cs
+++ b/ModernKeePass/ViewModels/MainVm.cs
@@ -193,5 +193,11 @@ namespace ModernKeePass.ViewModels
MessengerInstance.Send(new DatabaseClosedMessage { Parameter = message.Parameter });
});
}
+
+ public override void Cleanup()
+ {
+ MessengerInstance.Unregister(this);
+ base.Cleanup();
+ }
}
}
diff --git a/ModernKeePass/Views/MainPage.xaml.cs b/ModernKeePass/Views/MainPage.xaml.cs
index fbd51ee..aa85007 100644
--- a/ModernKeePass/Views/MainPage.xaml.cs
+++ b/ModernKeePass/Views/MainPage.xaml.cs
@@ -18,16 +18,10 @@ namespace ModernKeePass.Views
public MainPage()
{
InitializeComponent();
- Unloaded += MainPage_Unloaded;
ListView = MenuListView;
ListViewSource = MenuItemsSource;
}
-
- private void MainPage_Unloaded(object sender, Windows.UI.Xaml.RoutedEventArgs e)
- {
- Model.Cleanup();
- }
-
+
private new void ListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
base.ListView_SelectionChanged(sender, e);
@@ -47,5 +41,10 @@ namespace ModernKeePass.Views
file = e.Parameter as FileInfo;
await Model.Initialize(Frame, MenuFrame, file);
}
+
+ protected override void OnNavigatedFrom(NavigationEventArgs e)
+ {
+ Model.Cleanup();
+ }
}
}
diff --git a/ModernKeePass/Views/MainPageFrames/NewDatabasePage.xaml.cs b/ModernKeePass/Views/MainPageFrames/NewDatabasePage.xaml.cs
index 3147689..59145dc 100644
--- a/ModernKeePass/Views/MainPageFrames/NewDatabasePage.xaml.cs
+++ b/ModernKeePass/Views/MainPageFrames/NewDatabasePage.xaml.cs
@@ -1,5 +1,8 @@
// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238
+using Windows.UI.Xaml.Navigation;
+using ModernKeePass.ViewModels;
+
namespace ModernKeePass.Views
{
///
@@ -7,9 +10,16 @@ namespace ModernKeePass.Views
///
public sealed partial class NewDatabasePage
{
+ public NewVm Model => (NewVm)DataContext;
+
public NewDatabasePage()
{
InitializeComponent();
}
+
+ protected override void OnNavigatedFrom(NavigationEventArgs e)
+ {
+ Model.Cleanup();
+ }
}
}
diff --git a/ModernKeePass/Views/MainPageFrames/RecentDatabasesPage.xaml.cs b/ModernKeePass/Views/MainPageFrames/RecentDatabasesPage.xaml.cs
index 485806b..604873e 100644
--- a/ModernKeePass/Views/MainPageFrames/RecentDatabasesPage.xaml.cs
+++ b/ModernKeePass/Views/MainPageFrames/RecentDatabasesPage.xaml.cs
@@ -1,5 +1,8 @@
// Pour en savoir plus sur le modèle d'élément Page vierge, consultez la page http://go.microsoft.com/fwlink/?LinkId=234238
+using Windows.UI.Xaml.Navigation;
+using ModernKeePass.ViewModels;
+
namespace ModernKeePass.Views
{
///
@@ -7,9 +10,16 @@ namespace ModernKeePass.Views
///
public sealed partial class RecentDatabasesPage
{
+ public RecentVm Model => (RecentVm)DataContext;
+
public RecentDatabasesPage()
{
InitializeComponent();
}
+
+ protected override void OnNavigatedFrom(NavigationEventArgs e)
+ {
+ Model.Cleanup();
+ }
}
}
diff --git a/ModernKeePass/Views/MainPageFrames/SaveDatabasePage.xaml.cs b/ModernKeePass/Views/MainPageFrames/SaveDatabasePage.xaml.cs
index cddcbd2..f900562 100644
--- a/ModernKeePass/Views/MainPageFrames/SaveDatabasePage.xaml.cs
+++ b/ModernKeePass/Views/MainPageFrames/SaveDatabasePage.xaml.cs
@@ -1,5 +1,8 @@
// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238
+using Windows.UI.Xaml.Navigation;
+using ModernKeePass.ViewModels;
+
namespace ModernKeePass.Views
{
///
@@ -7,9 +10,16 @@ namespace ModernKeePass.Views
///
public sealed partial class SaveDatabasePage
{
+ public SaveVm Model => (SaveVm)DataContext;
+
public SaveDatabasePage()
{
InitializeComponent();
}
+
+ protected override void OnNavigatedFrom(NavigationEventArgs e)
+ {
+ Model.Cleanup();
+ }
}
}
diff --git a/ModernKeePass/Views/UserControls/OpenDatabaseUserControl.xaml b/ModernKeePass/Views/UserControls/OpenDatabaseUserControl.xaml
index b5ac571..893d315 100644
--- a/ModernKeePass/Views/UserControls/OpenDatabaseUserControl.xaml
+++ b/ModernKeePass/Views/UserControls/OpenDatabaseUserControl.xaml
@@ -7,7 +7,7 @@
xmlns:interactivity="using:Microsoft.Xaml.Interactivity"
xmlns:core="using:Microsoft.Xaml.Interactions.Core"
xmlns:converters="using:ModernKeePass.Converters"
- mc:Ignorable="d" >
+ mc:Ignorable="d">
@@ -85,6 +85,9 @@
+
+
+
diff --git a/ModernKeePass/Views/UserControls/SetCredentialsUserControl.xaml b/ModernKeePass/Views/UserControls/SetCredentialsUserControl.xaml
index 6a262d3..31bb2de 100644
--- a/ModernKeePass/Views/UserControls/SetCredentialsUserControl.xaml
+++ b/ModernKeePass/Views/UserControls/SetCredentialsUserControl.xaml
@@ -133,6 +133,9 @@
+
+
+
diff --git a/WinAppCommon/ViewModels/NewVm.cs b/WinAppCommon/ViewModels/NewVm.cs
index 86c03be..3a4f9c5 100644
--- a/WinAppCommon/ViewModels/NewVm.cs
+++ b/WinAppCommon/ViewModels/NewVm.cs
@@ -72,5 +72,11 @@ namespace ModernKeePass.ViewModels
var database = await _mediator.Send(new GetDatabaseQuery());
_navigation.NavigateTo(Constants.Navigation.GroupPage, new NavigationItem { Id = database.RootGroupId });
}
+
+ public override void Cleanup()
+ {
+ MessengerInstance.Unregister(this);
+ base.Cleanup();
+ }
}
}
diff --git a/WinAppCommon/ViewModels/RecentVm.cs b/WinAppCommon/ViewModels/RecentVm.cs
index 1733548..c1b49f1 100644
--- a/WinAppCommon/ViewModels/RecentVm.cs
+++ b/WinAppCommon/ViewModels/RecentVm.cs
@@ -49,5 +49,10 @@ namespace ModernKeePass.ViewModels
_recent.ClearAll();
RecentItems.Clear();
}
+ public override void Cleanup()
+ {
+ MessengerInstance.Unregister(this);
+ base.Cleanup();
+ }
}
}
diff --git a/WinAppCommon/ViewModels/SaveVm.cs b/WinAppCommon/ViewModels/SaveVm.cs
index 6bf4a91..1aee355 100644
--- a/WinAppCommon/ViewModels/SaveVm.cs
+++ b/WinAppCommon/ViewModels/SaveVm.cs
@@ -69,5 +69,11 @@ namespace ModernKeePass.ViewModels
await _mediator.Send(new CloseDatabaseCommand());
_navigation.NavigateTo(Constants.Navigation.MainPage);
}
+
+ public override void Cleanup()
+ {
+ MessengerInstance.Unregister(this);
+ base.Cleanup();
+ }
}
}
\ No newline at end of file
diff --git a/WinAppCommon/ViewModels/Settings/CredentialsVm.cs b/WinAppCommon/ViewModels/Settings/CredentialsVm.cs
index 48efe4d..74acc1b 100644
--- a/WinAppCommon/ViewModels/Settings/CredentialsVm.cs
+++ b/WinAppCommon/ViewModels/Settings/CredentialsVm.cs
@@ -33,5 +33,11 @@ namespace ModernKeePass.ViewModels.Settings
var database = await _mediator.Send(new GetDatabaseQuery());
_notification.Show(database.Name, _resource.GetResourceValue("CompositeKeyUpdated"));
}
+
+ public override void Cleanup()
+ {
+ MessengerInstance.Unregister(this);
+ base.Cleanup();
+ }
}
}
\ No newline at end of file
diff --git a/WinAppCommon/ViewModels/UserControls/OpenDatabaseControlVm.cs b/WinAppCommon/ViewModels/UserControls/OpenDatabaseControlVm.cs
index 5bbcac6..718d07c 100644
--- a/WinAppCommon/ViewModels/UserControls/OpenDatabaseControlVm.cs
+++ b/WinAppCommon/ViewModels/UserControls/OpenDatabaseControlVm.cs
@@ -181,5 +181,11 @@ namespace ModernKeePass.ViewModels
IsOpening = false;
}
}
+
+ public override void Cleanup()
+ {
+ MessengerInstance.Unregister(this);
+ base.Cleanup();
+ }
}
}
diff --git a/WinAppCommon/ViewModels/UserControls/SetCredentialsVm.cs b/WinAppCommon/ViewModels/UserControls/SetCredentialsVm.cs
index acf7787..6bd10cb 100644
--- a/WinAppCommon/ViewModels/UserControls/SetCredentialsVm.cs
+++ b/WinAppCommon/ViewModels/UserControls/SetCredentialsVm.cs
@@ -150,5 +150,11 @@ namespace ModernKeePass.ViewModels
KeyFilePath = HasKeyFile ? KeyFilePath : null
});
}
+
+ public override void Cleanup()
+ {
+ MessengerInstance.Unregister(this);
+ base.Cleanup();
+ }
}
}
\ No newline at end of file