Пример #1
0
        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;
                        }
                    }
                }
            }
        }
Пример #2
0
 public void OnPopped(TEKUtsavAppPage page)
 {
     if (ViewModelPopped != null)
     {
         ViewModelPopped.Invoke(this, new ViewModelPoppedEventHandlerArgs(page));
     }
 }
Пример #3
0
        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);
            }
        }
Пример #4
0
        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);
                }
            }
        }
Пример #5
0
 public void SetCurrentPage(TEKUtsavAppPage page)
 {
     NavigationService.SetCurrentPage(page);
     this.PageName = page;
 }
Пример #6
0
 public ViewModelPoppedEventHandlerArgs(TEKUtsavAppPage page)
 {
     AppPage = page;
 }
Пример #7
0
 public void SetCurrentPage(TEKUtsavAppPage page)
 {
     _currentPage = page;
 }