Ejemplo n.º 1
0
        public Task Navigate <TPage, TParameter>(TParameter parameter, PagePresentationEnum presentationEnum = PagePresentationEnum.AddToStackNavigation) where TPage : IPage <IViewModel>
        {
            var page = AppContainer.Container.Resolve <TPage>();

            if (page.ViewModel is IParameterViewModel <TParameter> parameterViewModel)
            {
                parameterViewModel.SetParameter(parameter);
            }

            return(Navigate(page, presentationEnum));
        }
Ejemplo n.º 2
0
        private Task Navigate(IPage <IViewModel> page, PagePresentationEnum presentation)
        {
            var xamFormsPage = page as Page;

            if (xamFormsPage == null)
            {
                throw new Exception($"page '{page}' is not of type {nameof(Page)}");
            }

            switch (presentation)
            {
            case PagePresentationEnum.AddToStackNavigation:
                return(NavigateOnCurrentNavigationPage(xamFormsPage));

            case PagePresentationEnum.NewStackNavigation:
                return(NavigateNewNavigationPage(xamFormsPage));

            case PagePresentationEnum.NoStackNavigation:
                return(NavigateNonNavigationPage(xamFormsPage));

            default:
                throw new Exception($"Unsupported presentation type '{presentation}' not implemented in {nameof(NavigationService)}");
            }
        }
Ejemplo n.º 3
0
        public Task Navigate <TPage>(PagePresentationEnum pagePresentation = PagePresentationEnum.AddToStackNavigation) where TPage : IPage <IViewModel>
        {
            var page = AppContainer.Container.Resolve <TPage>();

            return(Navigate(page, pagePresentation));
        }