diff --git a/View/Dialogs/DatabaseSelectorDialogView.xaml.cs b/View/Dialogs/DatabaseSelectorDialogView.xaml.cs
index ed90a62..73c8894 100644
--- a/View/Dialogs/DatabaseSelectorDialogView.xaml.cs
+++ b/View/Dialogs/DatabaseSelectorDialogView.xaml.cs
@@ -1,17 +1,7 @@
using System;
-using System.Collections.Generic;
using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Data;
-using System.Windows.Documents;
using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Imaging;
-using System.Windows.Shapes;
using DebtMgr.Extensions;
namespace DebtMgr.View.Dialogs
@@ -34,6 +24,14 @@ namespace DebtMgr.View.Dialogs
private void Window_OnKeyUp(object sender, KeyEventArgs e)
{
if (e.Key.Equals(Key.Escape))
+ Close();
+ }
+
+ protected override void OnClosing(CancelEventArgs e)
+ {
+ base.OnClosing(e);
+
+ if (!App.Locator.DatabaseSelectorDialogView.ProgramRequestedClose)
Application.Current.Shutdown();
}
}
diff --git a/View/MainView.xaml b/View/MainView.xaml
index 66005b2..f7a84e3 100644
--- a/View/MainView.xaml
+++ b/View/MainView.xaml
@@ -22,11 +22,8 @@
diff --git a/ViewModel/Dialogs/DatabaseSelectorDialogViewModel.cs b/ViewModel/Dialogs/DatabaseSelectorDialogViewModel.cs
index c383ca1..c3f4138 100644
--- a/ViewModel/Dialogs/DatabaseSelectorDialogViewModel.cs
+++ b/ViewModel/Dialogs/DatabaseSelectorDialogViewModel.cs
@@ -16,6 +16,7 @@ namespace DebtMgr.ViewModel.Dialogs
public class DatabaseSelectorDialogViewModel : ViewModelBase
{
public event EventHandler RequestClose;
+ public bool ProgramRequestedClose = false;
#region SelectDatabasePathText (string) Property
@@ -71,6 +72,7 @@ namespace DebtMgr.ViewModel.Dialogs
Properties.Settings.Default["Database"] = openFileDialog.FileName;
Properties.Settings.Default.Save();
+ ProgramRequestedClose = true;
RequestClose?.Invoke(null, null);
}
catch (Exception)
@@ -113,6 +115,7 @@ namespace DebtMgr.ViewModel.Dialogs
Properties.Settings.Default["Database"] = saveFileDialog.FileName;
Properties.Settings.Default.Save();
+ ProgramRequestedClose = true;
RequestClose?.Invoke(null, null);
}
}
diff --git a/ViewModel/MainViewModel.cs b/ViewModel/MainViewModel.cs
index abf8a3e..72297c8 100644
--- a/ViewModel/MainViewModel.cs
+++ b/ViewModel/MainViewModel.cs
@@ -8,6 +8,7 @@ using System.Linq;
using System.Windows;
using System;
using System.Configuration;
+using System.Threading;
using SQLite.Net;
using SQLite.Net.Platform.Generic;
@@ -390,6 +391,32 @@ namespace DebtMgr.ViewModel
#endregion
+ #region SwitchDatabaseMenuCommand Command
+
+ ///
+ /// Private member backing variable for
+ ///
+ private RelayCommand _PrivateCommandName = null;
+
+ ///
+ /// Comment
+ ///
+ public RelayCommand SwitchDatabaseMenuCommand => _PrivateCommandName ?? (_PrivateCommandName = new RelayCommand(SwitchDatabaseMenuCommand_Execute));
+
+ private void SwitchDatabaseMenuCommand_Execute()
+ {
+ Properties.Settings.Default["Database"] = string.Empty;
+ Properties.Settings.Default.Save();
+
+ Thread.Sleep(100);
+
+
+ System.Diagnostics.Process.Start(Application.ResourceAssembly.Location);
+ Application.Current.Shutdown();
+ }
+
+ #endregion
+
////////////////////////////////////////////////////////////////////////////////////////////////////
/// Initializes a new instance of the MainViewModel class.
///