Esempio n. 1
0
        public Task SetRootPage(string rootPageKey)
        {
            //var defaultMenu = GetMenuItemList().FirstOrDefault(f => f.IsDefault);
            //var page = _pageResolver.ResolvePage(defaultMenu.PageKey);
            //var vm = _pageResolver.ResolveViewModel(defaultMenu.PageKey);
            //if (vm != null)
            //{
            //    page.BindingContext = vm;
            //}



            //var navigationPage = new NavigationPage(page);

            //_navigationService.Navigation = navigationPage.Navigation;
            //return navigationPage;

            var page = _pageResolver.ResolvePage(rootPageKey);
            var vm   = _pageResolver.ResolveViewModel(rootPageKey);

            //if (vm != null)
            //{
            //    page.BindingContext = vm;
            //}


            return(Navigation.PushAsync(page));
        }
Esempio n. 2
0
        private Page CreatePage(MenuItem item)
        {
            Page page = null;

            switch (item.ItemType)
            {
            case MenuItemType.ItemsList:
                page = _pageResolver.ResolvePage <ItemsListViewModel>();
                break;

            case MenuItemType.Type2:
                page = _pageResolver.ResolvePage <BViewModel, string>("B");
                break;

            case MenuItemType.Type3:
                page = _pageResolver.ResolvePage <CViewModel, string>("C");
                break;

            default:
                page = _pageResolver.ResolvePage <DViewModel, string>("D");
                break;
            }

            page.Title = item.Title;
            return(page);
        }
Esempio n. 3
0
        public TabbedView(IPageResolver pageResolver)
        {
            InitializeComponent();

            Children.Add(pageResolver.ResolvePage <AViewModel>());
            Children.Add(pageResolver.ResolvePage <BViewModel>());
        }
Esempio n. 4
0
        public void SetAsRoot <TViewModel>(bool newNavigation = false) where TViewModel : IBaseViewModel
        {
            if (Application.Current == null)
            {
                throw new Exception("Application.Current is null");
            }

            var page = _pageResolver.ResolvePage <TViewModel>();

            if (newNavigation)
            {
                page = new NavigationPage(page);
            }

            Application.Current.MainPage = page;
        }
        public async Task NavigateToAsync <TViewModel>()
            where TViewModel : ViewModelBase
        {
            var viewModel = _context.Resolve <TViewModel>();

            if (!await viewModel.InitializeAsync())
            {
                throw new ControlNotInitializedException(nameof(TViewModel));
            }

            var pageTypeName = viewModel.GetDefaultPageName();
            var page         = _pageResolver.ResolvePage(pageTypeName);

            page.SetDataContext(viewModel);

            _mainWindow.LoadPage(page);
        }
Esempio n. 6
0
        public void InitializeMasterDetailPage(MasterDetailPage mainPage)
        {
            var masterpage = _pageResolver.ResolvePage(ViewNames.Master);

            //HACK: Adjusts to truncated master page, maybe fixed in future xamarin versions.
            if (Device.OS == TargetPlatform.Android && ((IAndroidDeviceInfo)_deviceInfo).IsKitkatAboveVersion)
            {
                masterpage.Padding = new Thickness(0, 25, 0, 0);
            }

            mainPage.Master = masterpage;
            MainPage        = mainPage;

            var defaultRootPage = GetDefaultRootPage();

            SetRootPage(defaultRootPage);
        }
        public App(IPageResolver pageResolver, IMasterPageService masterPageService)
        {
            InitializeComponent();


            var mainpage = pageResolver.ResolvePage(ViewNames.Main);

            masterPageService.InitializeMasterDetailPage((MasterDetailPage)mainpage);


            MainPage = mainpage;
        }
Esempio n. 8
0
        public List <Tuple <int, Page> > GetIndexedRootPages()
        {
            var listPageRoot     = _pageResolver.ResolvePage(PageKeys.ListPage);
            var settingsPageRoot = _pageResolver.ResolvePage(PageKeys.Settings);

            List <Tuple <int, Page> > indexedRootPageList = new List <Tuple <int, Page> >();

            indexedRootPageList.Add(new Tuple <int, Page>(1, new NavigationPage(settingsPageRoot)
            {
                Title = "Settings."
            }));
            indexedRootPageList.Add(new Tuple <int, Page>(0, new NavigationPage(listPageRoot)
            {
                Title = "ListPage."
            }));

            //indexedRootPageList.Add(new Tuple<int, Page>(1, settingsPageRoot));
            //indexedRootPageList.Add(new Tuple<int, Page>(0, listPageRoot));


            return(indexedRootPageList);
        }
Esempio n. 9
0
        public MasterDetailView(IPageResolver pageResolver)
        {
            _pageResolver = pageResolver;

            var master = pageResolver.ResolvePage <MasterViewModel>();

            master.Title = "Menu";
            Master       = master;

            var firstMenuItem = MasterView.List.ItemsSource.Cast <MenuItem>().First();
            var detail        = CreatePage(firstMenuItem);

            Detail = new NavigationPage(detail);

            MasterView.List.ItemSelected += ListView_ItemSelected;
        }
Esempio n. 10
0
        /// <summary>
        /// Navigation to page asynchronously.
        /// </summary>
        /// <param name="pageKey">The page key as a value in page names enum.</param>
        /// <returns>Task.</returns>
        public Task PushPageAsync(object pageKey)
        {
            var page = _pageResolver.ResolvePage(pageKey);

            return(Navigation.PushAsync(page));
        }