diff options
Diffstat (limited to 'Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/DefaultNavigationManager.cs')
| -rw-r--r-- | Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/DefaultNavigationManager.cs | 55 |
1 files changed, 35 insertions, 20 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 77b09f638..fe4be700c 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/DefaultNavigationManager.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Navigation/DefaultNavigationManager.cs @@ -117,22 +117,22 @@ namespace Tango.PPC.UI.Navigation var fromView = MainView.Instance.NavigationControl.SelectedElement; FrameworkElement toView = null; - toView = MainView.Instance.NavigationControl.NavigateTo(view.ToString(),() => - { - var fromVM = toView.DataContext as PPCViewModel; + toView = MainView.Instance.NavigationControl.NavigateTo(view.ToString(), () => + { + var fromVM = toView.DataContext as PPCViewModel; - if (fromVM != null) - { - fromVM.OnNavigatedFrom(); - } + if (fromVM != null) + { + fromVM.OnNavigatedFrom(); + } - var toVM = toView.DataContext as PPCViewModel; + var toVM = toView.DataContext as PPCViewModel; - if (toVM != null) - { - toVM.OnNavigatedTo(); - } - }); + if (toVM != null) + { + toVM.OnNavigatedTo(); + } + }); return Task.FromResult(true); } @@ -251,16 +251,19 @@ namespace Tango.PPC.UI.Navigation { await Task.Delay(100); - var v = moduleNavigation.NavigateTo(view, () => + FrameworkElement v = null; + + v = moduleNavigation.NavigateTo(view, () => { - if (fromVM is PPCViewModel) + if (v != null) { - (fromVM as PPCViewModel)?.OnNavigatedFrom(); - } + var toVM = v.DataContext as PPCViewModel; - if (_currentVM is PPCViewModel) - { - (_currentVM as PPCViewModel)?.OnNavigatedTo(); + if (toVM != null) + { + (fromVM as PPCViewModel)?.OnNavigatedFrom(); + (toVM as PPCViewModel)?.OnNavigatedTo(); + } } }); @@ -284,6 +287,18 @@ namespace Tango.PPC.UI.Navigation } else { + await Task.Delay(500); + + if (fromVM is PPCViewModel) + { + (fromVM as PPCViewModel)?.OnNavigatedFrom(); + } + + if (_currentVM is PPCViewModel) + { + (_currentVM as PPCViewModel)?.OnNavigatedTo(); + } + NavigationCycleCompleted?.Invoke(fromVM, _currentVM); } } |
