public void NavigateBack(TEKUtsavAppPage destinationPage, object navigationParam = null) { var masterDetail = (MasterDetailPage)Application.Current.MainPage; if (masterDetail != null) { var pages = masterDetail.Detail.Navigation.NavigationStack; var pagesToRemove = new List <Page>(); var totPages = (masterDetail.Detail.Navigation.NavigationStack.Count - 1); for (int i = totPages; i > 0; i--) { var page = masterDetail.Detail.Navigation.NavigationStack[i]; var vm = page.BindingContext as ViewModelBase; if (null != vm && !vm.PageName.Equals(destinationPage)) { vm.Dispose(); masterDetail.Detail.Navigation.RemovePage(page); } else { if (null != navigationParam) { vm.NavigationParameter = navigationParam; break; } } } } }
public void OnPopped(TEKUtsavAppPage page) { if (ViewModelPopped != null) { ViewModelPopped.Invoke(this, new ViewModelPoppedEventHandlerArgs(page)); } }
public void NavigateTo(TEKUtsavAppPage page, object navigationParams = null) { if (page == TEKUtsavAppPage.LoginPage) { _currentPage = page; Application.Current.MainPage = SetLoginPage(); return; } if (page == TEKUtsavAppPage.RegistrationPage) { _currentPage = page; Application.Current.MainPage = SetRegistrationPage(); return; } if (page == TEKUtsavAppPage.MasterMenuPage) { _currentPage = page; Application.Current.MainPage = SetMasterDetailPage(navigationParams); return; } if (page != TEKUtsavAppPage.LoginPage && page != TEKUtsavAppPage.RegistrationPage && page != TEKUtsavAppPage.MasterMenuPage && page != TEKUtsavAppPage.AppListingMasterMenuPage) { if (!(Application.Current.MainPage is MasterDetailPage)) { Application.Current.MainPage = SetMasterDetailPage(navigationParams); _currentPage = TEKUtsavAppPage.MasterMenuPage; } var masterDetail = (MasterDetailPage)Application.Current.MainPage; if (_currentPage == page) { return; } var requestedPage = _pageRegistry.GetPage(page, navigationParams); var navigationPage = masterDetail.Detail as NavigationPage; if (navigationPage != null) { navigationPage.Popped += delegate(object sender, NavigationEventArgs args) { var vm = sender as ViewModelBase; if (vm != null) { vm.OnPopped(page); } }; } masterDetail.Detail.Navigation.PushAsync(requestedPage, true); } }
public void ShowPopup(TEKUtsavAppPage page, object navigationParams = null) { var requestedPage = (PopupPage)_pageRegistry.GetPage(page, navigationParams); var masterDetail = (TEKUtsav.Views.RegistrationPage.RegistrationPage)Application.Current.MainPage; if (masterDetail != null) { if (!PopupNavigation.PopupStack.Any()) { masterDetail.Navigation.PushPopupAsync(requestedPage); } } }
public void SetCurrentPage(TEKUtsavAppPage page) { NavigationService.SetCurrentPage(page); this.PageName = page; }
public ViewModelPoppedEventHandlerArgs(TEKUtsavAppPage page) { AppPage = page; }
public void SetCurrentPage(TEKUtsavAppPage page) { _currentPage = page; }