コード例 #1
0
        async Task PushPageModelWithPage(Page page, ViewModelFoundation.BaseViewModel pageModel, object data, bool modal = false, bool animate = true)
        {
            pageModel.PreviousPageModel            = _currentPageModel; //This is the previous page model because it's push to a new one, and this is current
            pageModel.CurrentNavigationServiceName = _currentPageModel.CurrentNavigationServiceName;

            if (string.IsNullOrWhiteSpace(pageModel.PreviousNavigationServiceName))
            {
                pageModel.PreviousNavigationServiceName = _currentPageModel.PreviousNavigationServiceName;
            }

            if (page is MasterDetailNavigationContainer)
            {
                await this.PushNewNavigationServiceModal((MasterDetailNavigationContainer)page, pageModel, animate);
            }
            else if (page is TabbedNavigationContainer)
            {
                await this.PushNewNavigationServiceModal((TabbedNavigationContainer)page, pageModel, animate);
            }
            else
            {
                INavigationService rootNavigation = IOCFoundation.Ioc.Container.Resolve <INavigationService>(_currentPageModel.CurrentNavigationServiceName);

                await rootNavigation.PushPage(page, pageModel, modal, animate);
            }
        }
コード例 #2
0
        async Task PushPageModel(ViewModelFoundation.BaseViewModel pageModel, object data, bool modal = false, bool animate = true)
        {
            var page = ViewModelResolver.ResolveViewModel(data, pageModel);

            await PushPageModelWithPage(page, pageModel, data, modal, animate);
        }
コード例 #3
0
 public Task PushNewNavigationServiceModal(INavigationService newNavigationService, ViewModelFoundation.BaseViewModel basePageModels, bool animate = true)
 {
     return(PushNewNavigationServiceModal(newNavigationService, new ViewModelFoundation.BaseViewModel[] { basePageModels }, animate));
 }
コード例 #4
0
 public PageModelCoreMethods(Page currentPage, ViewModelFoundation.BaseViewModel pageModel)
 {
     _currentPage      = currentPage;
     _currentPageModel = pageModel;
 }
コード例 #5
0
        public Task PushNewNavigationServiceModal(MasterDetailNavigationContainer masterDetailContainer, ViewModelFoundation.BaseViewModel basePageModel = null, bool animate = true)
        {
            var models = masterDetailContainer.Pages.Select(o =>
            {
                if (o.Value is NavigationPage)
                {
                    return(((NavigationPage)o.Value).CurrentPage.GetModel());
                }
                else
                {
                    return(o.Value.GetModel());
                }
            }).ToList();

            if (basePageModel != null)
            {
                models.Add(basePageModel);
            }

            return(PushNewNavigationServiceModal(masterDetailContainer, models.ToArray(), animate));
        }
コード例 #6
0
        public Task PushNewNavigationServiceModal(TabbedNavigationContainer tabbedNavigationContainer, ViewModelFoundation.BaseViewModel basePageModel = null, bool animate = true)
        {
            var models = tabbedNavigationContainer.TabbedPages.Select(o => o.GetModel()).ToList();

            if (basePageModel != null)
            {
                models.Add(basePageModel);
            }
            return(PushNewNavigationServiceModal(tabbedNavigationContainer, models.ToArray(), animate));
        }