private void ValidateAndSetValueWithExistingController(IBehaviorContext context, ValidationController controller, TValue newValue) { ValidationResult validationResult = controller.GetResult(_step, context.VM, _property); if (validationResult.IsValid) { _invalidValueCache.Clear(context); SetValueNext(context, newValue); } _resultManager.UpdateValidationResult(context, validationResult); }
public void Revalidate(IBehaviorContext context) { ValidationController controller = _validationController.Get(context); var validationResult = controller.GetResult(_step, context.VM, _property); bool valueWasInvalid = _invalidValueCache.HasValue(context); bool valueIsNotInvalidAnymore = validationResult.IsValid; if (valueWasInvalid && valueIsNotInvalidAnymore) { TValue previouslyInvalidValue = _invalidValueCache.Get(context); _invalidValueCache.Clear(context); SetValueNext(context, previouslyInvalidValue); } else { this.PropertyRevalidateNext(context); } _resultManager.UpdateValidationResult(context, validationResult); }