public override System.Windows.Controls.ValidationResult Validate(object value, CultureInfo cultureInfo) { var validationResult = new System.Windows.Controls.ValidationResult(true, null); if (value != null) { String text = value.ToString(); if (!string.IsNullOrEmpty(text)) { IPAddress dummy = null; if (!IPAddress.TryParse(text, out dummy)) { validationResult = new System.Windows.Controls.ValidationResult(false, "Invalid IP Address!"); } } } return(validationResult); }
/// <summary> /// /// </summary> /// <returns></returns> public bool IsValid() { bool result = true; foreach (KeyValuePair <string, List <ValidationRule> > kvp in this.rules) { foreach (ValidationRule rule in kvp.Value) { System.Windows.Controls.ValidationResult vresult = rule.Validate(this.properties[kvp.Key].GetValue(this.CurrentItem, null), System.Globalization.CultureInfo.CurrentUICulture); if (vresult.IsValid == false) { result = false; if (!Validation.GetHasError(this.controls[kvp.Key])) { Validation.MarkInvalid(this.bindings[kvp.Key], new ValidationError(rule, this.bindings[kvp.Key].ParentBindingBase, vresult.ErrorContent, null)); } } } } return(result); }
public override System.Windows.Controls.ValidationResult Validate(object value, CultureInfo cultureInfo) { var validationResult = new System.Windows.Controls.ValidationResult(true, null); if (value != null) { if (!string.IsNullOrEmpty(value.ToString())) { //var regex = new Regex("^([0-9a-zA-Z]([-\\.\\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\\w]*[0-9a-zA-Z]\\.)+[a-zA-Z]{2,9})$"); //var parsingOk = regex.IsMatch(value.ToString()); var parsingOk = Regex.IsMatch(value.ToString(), @"^(?("")("".+?(?<!\\)""@)|(([0-9a-z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-z])@))" + @"(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-z][-0-9a-z]*[0-9a-z]*\.)+[a-z0-9][\-a-z0-9]{0,22}[a-z0-9]))$", RegexOptions.IgnoreCase, TimeSpan.FromMilliseconds(250)); if (!parsingOk) { validationResult = new System.Windows.Controls.ValidationResult(false, "Vous devez saisir une adresse email valide !"); } } } return(validationResult); }