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); }
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(); }
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); } } }
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)); }
protected virtual bool CloseSplitView(IMvxViewModel viewModel, MvxSplitViewPresentationAttribute attribute) { return(ClosePage(viewModel, attribute)); }
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); }
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)); }