diff options
Diffstat (limited to 'Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation')
| -rw-r--r-- | Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/DefaultNavigationManager.cs | 31 |
1 files changed, 31 insertions, 0 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 47450a68e..f06bd88de 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/DefaultNavigationManager.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/DefaultNavigationManager.cs @@ -34,6 +34,14 @@ namespace Tango.PPC.UI.Navigation private Stack<String> _navigationHistory; + /// <summary> + /// Gets the current view model. + /// </summary> + public PPCViewModel CurrentVM + { + get { return _currentVM as PPCViewModel; } + } + private IPPCModule _currentModule; /// <summary> /// Gets or sets the current module. @@ -339,5 +347,28 @@ namespace Tango.PPC.UI.Navigation return false; } } + + /// <summary> + /// Clears the navigation back history. + /// </summary> + public void ClearHistory() + { + _navigationHistory.Clear(); + RaisePropertyChanged(nameof(CanNavigateBack)); + } + + public void ClearHistoryExcept<T>() + { + var history_list = _navigationHistory.ToList(); + history_list = history_list.Where(x => x.Contains(typeof(T).Name)).Distinct().ToList(); + _navigationHistory.Clear(); + + foreach (var item in history_list) + { + _navigationHistory.Push(item); + } + + RaisePropertyChanged(nameof(CanNavigateBack)); + } } } |
