Esempio n. 1
0
        /// <inheritdoc />
        public async Task PushAsync(BaseNavigationViewModel viewModel, bool discardCurrent = false)
        {
            var currentPage = FormsNavigation.NavigationStack.LastOrDefault();
            var view        = InstantiateView(viewModel);

            if (currentPage.BindingContext is INavigationAware navPrevious)
            {
                navPrevious.OnNavigatingFrom();
            }

            if (viewModel is INavigationAware navForward)
            {
                navForward.OnNavigatingTo();
            }

            await FormsNavigation.PushAsync((Page)view);

            if (viewModel is INavigationAware navigated)
            {
                navigated.OnNavigatedTo();
            }

            if (discardCurrent)
            {
                FormsNavigation.RemovePage(currentPage);
            }
        }
Esempio n. 2
0
        public async Task PushAsync <TViewModel>(object parameter) where TViewModel : CoffeeShopBaseViewModel
        {
            Page page = CreatePage(typeof(TViewModel), parameter);

            await(page.BindingContext as CoffeeShopBaseViewModel).InitializeAsync(parameter);

            await FormsNavigation.PushAsync(page);
        }
        public async Task PushAsync(Type pageModelType, NavigationState navState)
        {
            var page = InstantiatePage(pageModelType, navState);

            await FormsNavigation.PushAsync((Page)page, false);

            PrintNavigationStackDepth("PushAsync");
        }
Esempio n. 4
0
        /// <inheritdoc />
        public async Task PushAsync(BaseNavigationViewModel viewModel, bool discardCurrent = false)
        {
            var currentPage = FormsNavigation.NavigationStack.LastOrDefault();
            var view        = InstantiateView(viewModel);
            await FormsNavigation.PushAsync((Page)view);

            if (discardCurrent && currentPage != null)
            {
                FormsNavigation.RemovePage(currentPage);
            }
        }
Esempio n. 5
0
        public async Task PushAsync(NavigationViewModel viewModel, bool animate = false)
        {
            try
            {
                var oldViewModel = (NavigationViewModel)NavigationPage?.CurrentPage.BindingContext;
                var view         = InstantiateView(viewModel);

                await FormsNavigation.PushAsync((Page)view, animate);

                oldViewModel?.OnHidden();
            }
            catch
            {
                // ignored as non critical exceptions don't stop the app from working
            }
        }
Esempio n. 6
0
        public async Task PushAsync <TViewModel>() where TViewModel : CoffeeShopBaseViewModel
        {
            Page page = CreatePage(typeof(TViewModel), null);

            await FormsNavigation.PushAsync(page);
        }
Esempio n. 7
0
 public Task PushAsync(BaseViewModel viewModel) => FormsNavigation.PushAsync((Page)InstantiateView(viewModel));
        public async Task PushAsync <T>(T viewModel) where T : class, IViewModel
        {
            var view = InstantiateView(viewModel);

            await FormsNavigation.PushAsync((Page)view);
        }
Esempio n. 9
0
        public Task PushAsync(BaseNavigationViewModel viewModel)
        {
            var view = InstantiateView(viewModel);

            return(FormsNavigation.PushAsync((Page)view));
        }
Esempio n. 10
0
 public Task PushAsync(BaseViewModel viewModel, bool animated) => FormsNavigation.PushAsync((Page)InstantiateView(viewModel), animated);
Esempio n. 11
0
 /// <inheritdoc />
 public async Task PushAsync(BaseNavigationViewModel viewModel)
 {
     var view = InstantiateView(viewModel);
     await FormsNavigation.PushAsync((Page)view);
 }