コード例 #1
0
 public void NavigateTo(string pageKey, HistoryBehavior historyBehavior, PreAppearingBehavior preAppearingBehavior) => NavigateTo(pageKey, null, historyBehavior, preAppearingBehavior);
コード例 #2
0
        public void NavigateTo(string pageKey, object parameter, HistoryBehavior historyBehavior, PreAppearingBehavior preAppearingBehavior = PreAppearingBehavior.Default)
        {
            Type pageType;

            if (pages.TryGetValue(pageKey, out pageType))
            {
                var displayPage = (Page)Activator.CreateInstance(pageType, args: parameter);
                CurrentPageKey = pageKey;

                ((IContentPageBase)displayPage)?.OnPreAppearing(preAppearingBehavior == PreAppearingBehavior.ClearData);

                if (historyBehavior == HistoryBehavior.ClearHistory)
                {
                    displayPage.SetNavigationArgs(parameter);

                    ((NavigationPage)MainPage).CurrentPage.Navigation.InsertPageBefore(displayPage, ((NavigationPage)MainPage).RootPage);
                    MainPage.Navigation.PopToRootAsync();
                }
                else
                {
                    MainPage.Navigation.PushAsync(displayPage, parameter, animated: true);
                }
            }
            else
            {
                throw new ArgumentException(
                          $"No such page: {pageKey}. Did you forget to call NavigationService.Configure?",
                          nameof(pageKey));
            }
        }
コード例 #3
0
        public void NavigateModalTo(string pageKey, object parameter, bool useNavigation = false, PreAppearingBehavior preAppearingBehavior = PreAppearingBehavior.Default)
        {
            Type pageType;

            if (pages.TryGetValue(pageKey, out pageType))
            {
                var displayPage = (Page)Activator.CreateInstance(pageType, args: parameter);

                ((IContentPageBase)displayPage)?.OnPreAppearing(preAppearingBehavior == PreAppearingBehavior.ClearData);

                if (useNavigation)
                {
                    var navPage = new AppNavigationPage(displayPage);
                    displayPage.SetNavigationArgs(parameter);
                    MainPage.Navigation.PushModalAsync(navPage, parameter, animated: true);
                }
                else
                {
                    MainPage.Navigation.PushModalAsync(displayPage, parameter, animated: true);
                }
            }
            else
            {
                throw new ArgumentException(
                          $"No such page: {pageKey}. Did you forget to call NavigationService.Configure?",
                          nameof(pageKey));
            }
        }