protected virtual void ShowDetailSplitViewController(
            UIViewController viewController,
            MvxSplitViewPresentationAttribute attribute,
            MvxViewModelRequest request)
        {
            if (SplitViewController == null)
            {
                throw new MvxException("Trying to show a detail page without a SplitViewController, this is not possible!");
            }

            SplitViewController.ShowDetailView(viewController, attribute);
        }
Esempio n. 2
0
        protected virtual Task <bool> ShowMasterSplitViewController(
            UIViewController viewController,
            MvxSplitViewPresentationAttribute attribute,
            MvxViewModelRequest request)
        {
            if (SplitViewController == null)
            {
                throw new MvxException("Trying to show a master page without a SplitViewController, this is not possible!");
            }

            SplitViewController.ShowMasterView(viewController, attribute);
            return(Task.FromResult(true));
        }
        public virtual void ShowMasterView(UIViewController viewController, MvxSplitViewPresentationAttribute attribute)
        {
            var newStack = ViewControllers.ToList();

            viewController = attribute.WrapInNavigationController ? new MvxNavigationController(viewController) : viewController;

            if (newStack.Any())
            {
                newStack.RemoveAt(0);
            }

            newStack.Insert(0, viewController);

            ViewControllers = newStack.ToArray();
        }
Esempio n. 4
0
        protected virtual void ShowSplitView(Type viewType, MvxSplitViewPresentationAttribute attribute, MvxViewModelRequest request)
        {
            var viewsContainer = Mvx.Resolve <IMvxViewsContainer>();

            if (_rootFrame.Content is MvxWindowsPage currentPage)
            {
                var splitView = currentPage.Content.FindControl <SplitView>();
                if (splitView == null)
                {
                    throw new MvxException($"Failed to find a SplitView in the visual tree of {viewType.Name}");
                }

                if (attribute.Position == SplitPanePosition.Content)
                {
                    splitView.Content = (UIElement)Activator.CreateInstance(viewType);
                }
                else if (attribute.Position == SplitPanePosition.Pane)
                {
                    splitView.Pane = (UIElement)Activator.CreateInstance(viewType);
                }
            }
        }
Esempio n. 5
0
        protected virtual Task <bool> ShowSplitView(Type viewType, MvxSplitViewPresentationAttribute attribute, MvxViewModelRequest request)
        {
            var viewsContainer = Mvx.IoCProvider.Resolve <IMvxViewsContainer>();

            if (_rootFrame.Content is MvxWindowsPage currentPage)
            {
                var splitView = currentPage.Content.FindControl <SplitView>();
                if (splitView == null)
                {
                    return(Task.FromResult(true));
                }

                if (attribute.Position == SplitPanePosition.Content)
                {
                    var nestedFrame = splitView.Content as Frame;
                    if (nestedFrame == null)
                    {
                        nestedFrame       = new Frame();
                        splitView.Content = nestedFrame;
                    }
                    var requestText = GetRequestText(request);
                    nestedFrame.Navigate(viewType, requestText);
                }
                else if (attribute.Position == SplitPanePosition.Pane)
                {
                    var nestedFrame = splitView.Pane as Frame;
                    if (nestedFrame == null)
                    {
                        nestedFrame    = new Frame();
                        splitView.Pane = nestedFrame;
                    }
                    var requestText = GetRequestText(request);
                    nestedFrame.Navigate(viewType, requestText);
                }
            }
            return(Task.FromResult(true));
        }
Esempio n. 6
0
 protected virtual bool CloseSplitView(IMvxViewModel viewModel, MvxSplitViewPresentationAttribute attribute)
 {
     return(ClosePage(viewModel, attribute));
 }
Esempio n. 7
0
        protected virtual Task <bool> CloseDetailSplitViewController(IMvxViewModel viewModel, MvxSplitViewPresentationAttribute attribute)
        {
            if (SplitViewController != null && SplitViewController.CloseChildViewModel(viewModel, attribute))
            {
                return(Task.FromResult(true));
            }

            return(Task.FromResult(false));
        }
        protected virtual bool CloseDetailSplitViewController(IMvxViewModel viewModel, MvxSplitViewPresentationAttribute attribute)
        {
            if (SplitViewController != null && SplitViewController.CloseChildViewModel(viewModel, attribute))
            {
                return(true);
            }

            return(true);
        }
        public virtual void ShowDetailView(UIViewController viewController, MvxSplitViewPresentationAttribute attribute)
        {
            viewController = attribute.WrapInNavigationController ? new MvxNavigationController(viewController) : viewController;

            ShowDetailViewController(viewController, this);
        }
Esempio n. 10
0
        protected virtual ValueTask <bool> CloseMasterSplitViewController(IMvxViewModel viewModel, MvxSplitViewPresentationAttribute attribute)
        {
            if (SplitViewController != null && SplitViewController.CloseChildViewModel(viewModel, attribute))
            {
                return(new ValueTask <bool>(true));
            }

            return(new ValueTask <bool>(true));
        }