/// <summary> /// Appelé lorsque la navigation souhaite quitter ce VM. /// </summary> /// <returns> /// <c>true</c> si la navigation est acceptée. /// </returns> public override Task <bool> OnNavigatingAway(IFrameNavigationToken token) { if (!CanChangeAndHasNoPendingChanges()) { MessageDialogResult answer = this.AskNavigatingAwayValidationConfirmation(() => _navigationToken = token); return(Task.FromResult(answer == MessageDialogResult.No)); } return(Task.FromResult(true)); }
/// <summary> /// Appelé lorsque la navigation souhaite quitter ce VM. /// </summary> /// <returns> /// <c>true</c> si la navigation est acceptée. /// </returns> public override async Task <bool> OnNavigatingAway(IFrameNavigationToken token) { if (Users.Any(i => i.ChangeTracker.State != ObjectState.Unchanged) || (_usersPendingForDelete != null && _usersPendingForDelete.Any())) { var result = base.DialogFactory.GetDialogView <IMessageDialog>().Show( LocalizationManager.GetString("VM_ApplicationMembers_Message_WantToSave"), LocalizationManager.GetString("Common_Confirmation"), MessageDialogButton.YesNoCancel, MessageDialogImage.Question); switch (result) { case MessageDialogResult.Yes: // Valider, sauvegarder, quitter foreach (var user in this.Users) { user.ExternalValidation = null; } if (ValidateUsers()) { await Save(); return(true); } else { return(false); } case MessageDialogResult.No: // Quitter sans rien faire return(true); default: // Ne pas quitter return(false); } } else { return(true); } }
/// <summary> /// Appelé lorsque la navigation souhaite quitter ce VM. /// </summary> /// <returns> /// <c>true</c> si la navigation est acceptée. /// </returns> public override Task <bool> OnNavigatingAway(IFrameNavigationToken token) => Task.FromResult(_currentViewModel.OnNavigatingAway());
/// <summary> /// Appelé lorsque la navigation souhaite quitter ce VM. /// </summary> /// <param name="token">Représente le jeton de navigation permettant d'effectuer une navigation asynchrone</param> /// <returns><c>true</c> si la navigation est acceptée.</returns> public virtual Task <bool> OnNavigatingAway(IFrameNavigationToken token) { return(Task.FromResult(true)); }
/// <summary> /// Appelé lorsque la navigation souhaite quitter ce VM. /// </summary> /// <returns> /// <c>true</c> si la navigation est acceptée. /// </returns> public override Task <bool> OnNavigatingAway(IFrameNavigationToken token) { _currentExtensionConfigurationViewModel?.OnNavigatingAway(); return(Task.FromResult(true)); }