private static void TriggerElementPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { Validator validator = d as Validator; if (FrameworkElementService.GetIsFirstVisit(validator.TriggerElement)) { validator.RegisterTriggerValidationEvent(); FrameworkElementService.SetIsFirstVisit(validator.TriggerElement, false); } ValidationService.GetValidators(validator.TriggerElement).Add(validator); }
protected static void ValidPropertyPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { Validator validator = d as Validator; validator.SetSourceFromProperty(); if (validator.HasSourceContext) { UIThread.BeginInvoke(() => { var isValid = validator.IsValid; validator.IsValid = validator.InnerValidateWithError(); if (!isValid && !validator.IsValid && !FrameworkElementService.GetIsFirstVisit(validator)) { validator.GapValidate(); } }, DispatcherPriority.Normal); } else { validator.IsValid = true; } FrameworkElementService.SetIsFirstVisit(validator, false); }