private void OnMainFrameAfterNavigation() { CurrentPage = GetCurrentPage(); GoBackCommand.RaiseCanExecuteChanged(); GoForwardCommand.RaiseCanExecuteChanged(); NavigateToHomeCommand.RaiseCanExecuteChanged(); _usageCalculator.UpdateUsage(CurrentPage); }
public void Navigate(Guid pageId) { var page = Module.ChartingPages[pageId]; _mainFrame.Navigate(new Uri(page.Uri, UriKind.RelativeOrAbsolute)); GoBackCommand.RaiseCanExecuteChanged(); GoForwardCommand.RaiseCanExecuteChanged(); NavigateToHomeCommand.RaiseCanExecuteChanged(); }
public void GoForward() { var lastExamplePage = CurrentExample as ExampleAppPage; var lastExampleView = _currentExample; _history.Redo(); var example = _history.Current as Example; if (example != null) { Navigate(example); ServiceLocator.Container.Resolve <IModule>().CurrentExample = example; } else { Navigate((Guid)_history.Current); } ServiceLocator.Container.Resolve <ExampleViewModel>().ExportExampleViewModel.IsExportVisible = false; ServiceLocator.Container.Resolve <ExampleViewModel>().BreadCrumbViewModel.IsShowingBreadcrumbNavigation = false; GoBackCommand.RaiseCanExecuteChanged(); GoForwardCommand.RaiseCanExecuteChanged(); NavigateToHomeCommand.RaiseCanExecuteChanged(); if (lastExamplePage != null) { // Required to release memory from last example lastExamplePage.ViewModel = null; } if (lastExampleView != null) { lastExampleView.View = null; } GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); }