public static void RevalidateItems(IEnumerable <IViewModel> items, ValidationScope scope) { if (scope != ValidationScope.Self) { foreach (var item in items) { foreach (var property in item.Descriptor.Properties) { PerformDescendantValidations(item, property, scope); } } } var controller = new ValidationController(); foreach (var item in items) { foreach (var property in item.Descriptor.Properties) { controller.RequestPropertyRevalidation(item, property); } } foreach (var item in items) { controller.RequestViewModelRevalidation(item); } controller.ProcessPendingValidations(); }
public static void RevalidateViewModelValidations(IViewModel viewModel) { var controller = new ValidationController(); controller.RequestViewModelRevalidation(viewModel); controller.ProcessPendingValidations(); }
private void ValidateAndSetValueWithNewController(IBehaviorContext context) { var controller = new ValidationController(); TValue newValue = _invalidValueCache.Get(context); controller.ManuallyBeginValidation(context.VM, _property); ValidateAndSetValueWithExistingController(context, controller, newValue); controller.ManuallyEndValidation(context.VM, _property); controller.ProcessPendingValidations(); }
public static void RevalidatePropertyValidations( IViewModel viewModel, IVMPropertyDescriptor property, ValidationScope scope ) { PerformDescendantValidations(viewModel, property, scope); var controller = new ValidationController(); controller.RequestPropertyRevalidation(viewModel, property); controller.ProcessPendingValidations(); }
public void PerformRevalidation(ValidationController controller) { IBehaviorContext context = VM.Kernel.GetContext(); bool targetsProperty = Property != null; if (targetsProperty) { Property.Behaviors.BeginValidationNext(context, controller); Property.Behaviors.PropertyRevalidateNext(context); Property.Behaviors.EndValidationNext(context); } bool targetsViewModel = Property == null; if (targetsViewModel) { VM.Descriptor.Behaviors.ViewModelRevalidateNext(context, controller); } }
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); }
public void BeginValidation(IBehaviorContext context, ValidationController controller) { _validationController.Set(context, controller); this.BeginValidationNext(context, controller); }
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); }