public void GoBack() { if (!CanGoBack) { return; } var page = PageStack[PageIndex]; var args = new HBNavigatingCancelEventArgs(); page.OnNavigatingFrom(args); page.Visibility = Windows.UI.Xaml.Visibility.Collapsed; PageStack.Remove(page); FrameGrid.Children.Remove(page); page.OnNavigatedFrom(new HBNavigationEventArgs()); GC.SuppressFinalize(page); GC.Collect(); page.Content = null; page = null; PageIndex--; if (PageIndex >= 0) { page = PageStack[PageIndex]; //page.OnNavigatedTo(new HBNavigationEventArgs() { NavigationMode = NavigationMode.Back }); } else { this.Visibility = Visibility.Collapsed; } }
private HBControl CreatePage(Type type) { if (PageIndex <= PageStack.Count - 1) { for (int i = PageStack.Count - 1; i > PageIndex; i--) { var _page = PageStack[i]; PageStack.Remove(_page); FrameGrid.Children.Remove(_page); } } var page = Activator.CreateInstance(type) as HBControl; FrameGrid.Children.Add(page); PageStack.Add(page); PageIndex++; return(page); }
private HBControl CreatePage(Type type, string targetName = null) { if (PageIndex <= PageStack.Count - 1) { for (int i = PageStack.Count - 1; i > PageIndex; i--) { var _page = PageStack[i]; PageStack.Remove(_page); FrameGrid.Children.Remove(_page); } } if (PageStack.Count > 0 && !string.IsNullOrEmpty(targetName) && PageStack[PageIndex].TargetName == targetName) { return(PageStack[PageIndex]); } var page = Activator.CreateInstance(type) as HBControl; page.TargetName = targetName; FrameGrid.Children.Add(page); PageStack.Add(page); PageIndex++; return(page); }