private async void AddView(IViewModel viewModel)
        {
            await detailNavigationPage.PushAsync(ShellViewPage.Create(viewFactory.GetView(viewModel)));

            Detail  = detailNavigationPage;
            IsReady = true;
        }
Exemple #2
0
        private static void OnHasNavigationBarChanged(BindableObject bindableObject, object oldValue, object newValue)
        {
            ShellViewPage shellViewPage       = (ShellViewPage)bindableObject;
            bool          newHasNavigationBar = (bool)newValue;

            NavigationPage.SetHasNavigationBar(shellViewPage, newHasNavigationBar);
        }
Exemple #3
0
        public static Page Create(object content)
        {
            Page page = null;

            if (content is Page)
            {
                page = content as Page;
            }
            else
            {
                View view = content as View;
                page = new ShellViewPage()
                {
                    Content = view
                };
                page.BindingContext = view.BindingContext;
            }

            if (page != null)
            {
                page.SetBinding(TitleProperty, new Binding("Title"));
                page.SetBinding(IconProperty, new Binding("Icon"));
            }

            return(page);
        }
        public static void MasterViewModelPropertyChanged(BindableObject bindableObject, object oldValue, object newValue)
        {
            MasterDetailShellPage masterDetailShellPage = (MasterDetailShellPage)bindableObject;
            IViewModel            newViewModel          = (IViewModel)newValue;

            if (newViewModel != null)
            {
                masterDetailShellPage.Master = ShellViewPage.Create(masterDetailShellPage.viewFactory.GetView(newViewModel));
            }
        }
Exemple #5
0
        private static void OnShellToolbarItemsChanged(BindableObject bindableObject, object oldValue, object newValue)
        {
            ShellViewPage shellViewPage = (ShellViewPage)bindableObject;
            IEnumerable <ToolbarItemViewModel> oldToolbarItems = (IEnumerable <ToolbarItemViewModel>)oldValue;
            IEnumerable <ToolbarItemViewModel> newToolbarItems = (IEnumerable <ToolbarItemViewModel>)newValue;

            if (oldToolbarItems is ObservableCollection <ToolbarItemViewModel> )
            {
                (oldToolbarItems as ObservableCollection <ToolbarItemViewModel>).CollectionChanged -= shellViewPage.ShellToolbarItems_CollectionChanged;
            }
            if (newToolbarItems != null)
            {
                foreach (ToolbarItemViewModel item in newToolbarItems)
                {
                    shellViewPage.AddToolbarItem(item);
                }

                if (newToolbarItems is ObservableCollection <ToolbarItemViewModel> )
                {
                    (newToolbarItems as ObservableCollection <ToolbarItemViewModel>).CollectionChanged += shellViewPage.ShellToolbarItems_CollectionChanged;
                }
            }
        }
Exemple #6
0
        private async void AddView(IViewModel viewModel)
        {
            await PushAsync(ShellViewPage.Create(viewFactory.GetView(viewModel)));

            IsReady = true;
        }