public void Validate() { ModelPropertyPair pair = this.GetModelPropertyChain().Last(); object value = this.GetValueToValidate(); object convertedValue; if (!this.TryConvertValue(value, out convertedValue)) { this.ErrorProvider.SetError(this.ControlToValidate, "Value is invalid."); return; } string errorMessage = this.GetValidationErrorOrNull(pair, convertedValue); this.ErrorProvider.SetError(this.ControlToValidate, errorMessage); }
private string GetValidationErrorOrNull(ModelPropertyPair pair, object value) { var context = new ValidationContext(pair.Model) { MemberName = pair.Property.Name }; try { Validator.ValidateValue(value, context, this.ValidationAttributes); return(null); } catch (ValidationException ex) { return(ex.Message); } }