Example #1
0
        public virtual void AddPage <T>(object data = null) where T : BaseViewModel
        {
            var page      = ViewModelResolver.ResolvePageModel <T>(data);
            var pagemodel = page.GetModel();

            pagemodel.CurrentNavigationServiceName = NavigationServiceName;
            _pagesInner.Add(page);
            var navigationContainer = CreateContainerPage(page);

            if (string.IsNullOrEmpty(pagemodel.Title))
            {
                throw new Exception("no Title found for " + pagemodel.GetType().Name);
            }
            _pages.Add(pagemodel.Title, navigationContainer);
            _pageNames.Add(pagemodel.Title);
            if (_pages.Count == 1)
            {
                Detail = navigationContainer;
            }
        }
Example #2
0
        private void CreateMenuPage <T>(string masterListName) where T : BaseViewModel
        {
            var masterpage = ViewModelResolver.ResolvePageModel <T>();
            var pagelist   = masterpage.FindByName(masterListName);

            if (pagelist is ListView list)
            {
                list.ItemSelected += (sender, args) =>
                {
                    if (_pages.ContainsKey(((MenuItems)args.SelectedItem).Title))
                    {
                        Detail = _pages[((MenuItems)args.SelectedItem).Title];
                    }
                    IsPresented = false;
                };
            }
            else
            {
                throw new Exception("Master list navigation name not the same as xaml");
            }
            Master = masterpage;
        }
        async Task PushPageModel(BaseViewModel pageModel, object data, bool modal = false, bool animate = true)
        {
            var page = ViewModelResolver.ResolvePageModel(data, pageModel);

            await PushPageModelWithPage(page, pageModel, data, modal, animate);
        }