aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation')
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/DefaultNavigationManager.cs56
1 files changed, 43 insertions, 13 deletions
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/DefaultNavigationManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/DefaultNavigationManager.cs
index a0338912f..77b09f638 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/DefaultNavigationManager.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/DefaultNavigationManager.cs
@@ -113,7 +113,27 @@ namespace Tango.PPC.UI.Navigation
{
LogManager.Log($"Navigating to: {view.ToString()}...");
- MainView.Instance.NavigationControl.NavigateTo(view.ToString());
+
+ var fromView = MainView.Instance.NavigationControl.SelectedElement;
+ FrameworkElement toView = null;
+
+ toView = MainView.Instance.NavigationControl.NavigateTo(view.ToString(),() =>
+ {
+ var fromVM = toView.DataContext as PPCViewModel;
+
+ if (fromVM != null)
+ {
+ fromVM.OnNavigatedFrom();
+ }
+
+ var toVM = toView.DataContext as PPCViewModel;
+
+ if (toVM != null)
+ {
+ toVM.OnNavigatedTo();
+ }
+ });
+
return Task.FromResult(true);
}
}
@@ -398,24 +418,34 @@ namespace Tango.PPC.UI.Navigation
_navigating_back = true;
- String first = _navigationHistory.Pop();
- _preventHistory = true;
-
-
- if (await NavigateTo(first))
+ if (_navigationHistory.Count > 0)
{
- RaisePropertyChanged(nameof(CanNavigateBack));
- _preventHistory = false;
- _navigating_back = false;
- return true;
+ String first = _navigationHistory.Pop();
+ _preventHistory = true;
+
+ if (await NavigateTo(first))
+ {
+ RaisePropertyChanged(nameof(CanNavigateBack));
+ _preventHistory = false;
+ _navigating_back = false;
+ return true;
+ }
+ else
+ {
+ _navigationHistory.Push(first);
+ _preventHistory = false;
+ _navigating_back = false;
+ RaisePropertyChanged(nameof(CanNavigateBack));
+ return false;
+ }
}
else
{
- _navigationHistory.Push(first);
+ await NavigateTo(NavigationView.HomeModule);
+ RaisePropertyChanged(nameof(CanNavigateBack));
_preventHistory = false;
_navigating_back = false;
- RaisePropertyChanged(nameof(CanNavigateBack));
- return false;
+ return true;
}
}