Aby zbudować swoją regułą, wystarczy stworzyć klasę dziedziczącą po ValidationRule.
public class EmailValidationRule : ValidationRule { public override ValidationResult Validate(object value, CultureInfo cultureInfo) { Debug.WriteLine("Validation Rule Active : " + value.ToString()); var str = value.ToString(); Regex regex = new Regex(@"^([\w.-]+)@([\w-]+)((.(\w){2,3})+)$",RegexOptions.IgnoreCase); var match = regex.Match(str); return match.Success ? new ValidationResult(true, null) : new ValidationResult(false, "Email Address is not valid"); } }
A następnie dodać instancję, do databindingu.
<TextBox Name="textBox8" > <TextBox.Text> <Binding> <Binding.ElementName> main </Binding.ElementName> <Binding.Path> Email </Binding.Path> <Binding.ValidationRules> <local:EmailValidationRule /> </Binding.ValidationRules> </Binding> </TextBox.Text> </TextBox>
Metoda Validate wywoła się w momencie próby aktualizacji źródła danych w przypadku Bindingu OneWay.
Brak komentarzy:
Prześlij komentarz