Пример #1
0
        public async Task PushModalAsync <TViewModel>() where TViewModel : CoffeeShopBaseViewModel
        {
            Page page = CreatePage(typeof(TViewModel), null);
            //Put in NavigationPage to use title bar
            var nv = new NavigationPage(page);

            await FormsNavigation.PushModalAsync(nv);
        }
Пример #2
0
        /// <inheritdoc />
        public async Task PushModalAsync(BaseNavigationViewModel viewModel)
        {
            viewModel.IsModal = true;
            var view = InstantiateView(viewModel);
            var nv   = new NavigationPage((Page)view);

            await FormsNavigation.PushModalAsync(nv);
        }
        public async Task PushModalAsync(Type pageModelType)
        {
            var page = InstantiatePage(pageModelType,
                                       new NavigationState(Modal));

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

            PrintModalStackDepth("PushModalAsync");
        }
        public async Task PushModalAsync <T>(T viewModel) where T : class, IViewModel
        {
            var view = InstantiateView(viewModel);

            // Most likely we're going to want to put this into a navigation page so we can have a title bar on it
            var nv = new NavigationPage((Page)view);

            await FormsNavigation.PushModalAsync(nv);
        }
Пример #5
0
        public async Task PushModalAsync <TViewModel>(object parameter) where TViewModel : CoffeeShopBaseViewModel
        {
            Page page = CreatePage(typeof(TViewModel), parameter);

            await(page.BindingContext as CoffeeShopBaseViewModel).InitializeAsync(parameter);
            //Put in NavigationPage to use title bar
            var nv = new NavigationPage(page);

            await FormsNavigation.PushModalAsync(nv);
        }
Пример #6
0
        public Task PushModalAsync(BaseNavigationViewModel viewModel)
        {
            viewModel.Display = ViewModelDisplay.Modal;

            var view = InstantiateView(viewModel);

            // Most likely we're going to want to put this into a navigation page so we can have a title bar on it
            var nv = new NavigationPage((Page)view);

            return(FormsNavigation.PushModalAsync(nv));
        }
Пример #7
0
        public async Task PushModalAsync(Type viewModelType)
        {
            var viewModel = this._viewModelViewDictionary.FirstOrDefault(vm => vm.Key.GetType() == viewModelType).Key;

            this.InitCurrentViewModel(false);
            var view = this.GetAssociatedView(viewModel);

            // Most likely we're going to want to put this into a navigation page so we can have a title bar on it
            var nv = new NavigationPage((Page)view);

            await FormsNavigation.PushModalAsync(nv);

            this.InitCurrentViewModel(true);
        }
Пример #8
0
        public Task PushModalAsync(BaseViewModel viewModel, bool nestedNavigation = false)
        {
            var view = InstantiateView(viewModel);

            Page page;

            if (nestedNavigation)
            {
                page = new NavigationPage((Page)view);
            }
            else
            {
                page = (Page)view;
            }

            return(FormsNavigation.PushModalAsync(page));
        }
Пример #9
0
        public async Task PushModalAsync(NavigationViewModel viewModel, bool animate = false)
        {
            try
            {
                var oldViewModel = (NavigationViewModel)NavigationPage?.CurrentPage.BindingContext;
                var view         = InstantiateView(viewModel);

                // Most likely we're going to want to put this into a navigation page so we can have a title bar on it
                var nv = new NavigationPage((Page)view);

                await FormsNavigation.PushModalAsync(nv, animate);

                oldViewModel?.OnHidden();
            }
            catch
            {
                // ignored as non critical exceptions don't stop the app from working
            }
        }
Пример #10
0
        public Task PushModalAsync(BaseViewModel viewModel, bool nestedNavigation = false, bool animated = true)
        {
            viewModel.ViewDisplay = ViewDisplayType.Modal;

            var view = InstantiateView(viewModel);

            Page page;

            if (nestedNavigation)
            {
                page = new NavigationPage((Page)view);
            }
            else
            {
                page = (Page)view;
            }

            return(FormsNavigation.PushModalAsync(page, animated));
        }
Пример #11
0
        /// <inheritdoc />
        public async Task PushModalAsync(BaseNavigationViewModel viewModel)
        {
            viewModel.IsModal = true;

            var currentPage = FormsNavigation.NavigationStack.LastOrDefault();

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

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

            var view = InstantiateView(viewModel);
            var nv   = new NavigationPage((Page)view);

            await FormsNavigation.PushModalAsync(nv);
        }