/// <summary> /// Pushes the <see cref="IModalViewModel" /> onto the stack. /// </summary> /// <param name="modal">The modal.</param> /// <param name="contract">The contract.</param> /// <returns></returns> public IObservable <Unit> PushModal(IModalViewModel modal, string contract = null) { if (modal == null) { throw new ArgumentNullException(nameof(modal)); } return(_view.PushModal(modal, contract).Do(_ => AddToStackAndTick(_modalStack, modal, false))); }
void IModalDisplay.Show <TResult>( IModalViewModel <TResult> viewModel, Action <TResult> onClosed, int fadeDuration) { viewModel.Require(nameof(viewModel)); MainWindowViewModel.Instance.SetModalViewModel(viewModel, fadeDuration); viewModel.OnClosed += onClosed; }
public IObservable<Unit> PushModal(IModalViewModel modal, string contract = null, bool animate = true) { Ensure.ArgumentNotNull(modal, nameof(modal)); return this ._view .PushModal(modal, contract, animate) .Do( _ => { AddToStackAndTick(this._modalStack, modal, false); _logger.Debug("Added modal '{0}' (contract '{1}') to stack.", modal.Title, contract); }); }
/// <summary> /// Pushes the modal. /// </summary> /// <param name="modalViewModel">The modal view model.</param> /// <param name="contract">The contract.</param> /// <returns></returns> public IObservable <Unit> PushModal(IModalViewModel modalViewModel, string contract) { // Ensure.ArgumentNotNull(modalViewModel, nameof(modalViewModel)); return(Observable .Start( () => { var page = this.LocatePageFor(modalViewModel, contract); this.SetPageTitle(page, modalViewModel.Id); return page; }, this.backgroundScheduler) .ObserveOn(this.mainScheduler) .SelectMany( page => this .Navigation .PushModalAsync(page) .ToObservable())); }
private void SetupModalViewModel(IModalViewModel modalViewModel) { ModalViewModel = modalViewModel; ShowModal = modalViewModel != null; }
async Task IViewModelNavigation.PushModalAsync(IModalViewModel viewModel) { await MainPage.Navigation.PushModalAsync(ResolvePage(FindViewForViewModel(viewModel))); }
// For generic modal public void OpenModal(IModalViewModel viewModel) { CurrentModal = viewModel; IsModalOpen = true; }