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); } }
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); }
public Task PushNewNavigationServiceModal(INavigationService newNavigationService, ViewModelFoundation.BaseViewModel basePageModels, bool animate = true) { return(PushNewNavigationServiceModal(newNavigationService, new ViewModelFoundation.BaseViewModel[] { basePageModels }, animate)); }
public PageModelCoreMethods(Page currentPage, ViewModelFoundation.BaseViewModel pageModel) { _currentPage = currentPage; _currentPageModel = pageModel; }
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)); }
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)); }