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.cs19
1 files changed, 17 insertions, 2 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 448fc0edc..0ede1306f 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/DefaultNavigationManager.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/DefaultNavigationManager.cs
@@ -28,6 +28,7 @@ namespace Tango.PPC.UI.Navigation
private Object _currentVM;
private String _lastFullPath;
private bool _preventHistory;
+ private bool _navigating_back;
private Stack<String> _navigationHistory;
@@ -139,9 +140,19 @@ namespace Tango.PPC.UI.Navigation
if (_currentVM != null && _currentVM is INavigationBlocker)
{
- if (!await (_currentVM as INavigationBlocker).OnNavigateOutRequest())
+ if (_navigating_back)
{
- return false;
+ if (!await (_currentVM as INavigationBlocker).OnNavigateBackRequest())
+ {
+ return false;
+ }
+ }
+ else
+ {
+ if (!await (_currentVM as INavigationBlocker).OnNavigateOutRequest())
+ {
+ return false;
+ }
}
}
@@ -260,6 +271,8 @@ namespace Tango.PPC.UI.Navigation
/// </summary>
public async Task<bool> NavigateBack()
{
+ _navigating_back = true;
+
String first = _navigationHistory.Pop();
_preventHistory = true;
@@ -268,12 +281,14 @@ namespace Tango.PPC.UI.Navigation
{
RaisePropertyChanged(nameof(CanNavigateBack));
_preventHistory = false;
+ _navigating_back = false;
return true;
}
else
{
_navigationHistory.Push(first);
_preventHistory = false;
+ _navigating_back = false;
RaisePropertyChanged(nameof(CanNavigateBack));
return false;
}