void AttachToNotifyError (INotifyDataErrorInfo element)
{
if (CurrentNotifyError == element || !Binding.ValidatesOnNotifyDataErrors)
return;
string property = "";
if (PropertyPathWalker.FinalNode.PropertyInfo != null)
property = PropertyPathWalker.FinalNode.PropertyInfo.Name;
if (CurrentNotifyError != null) {
CurrentNotifyError.ErrorsChanged -= NotifyErrorsChanged;
MaybeEmitError (null, null);
}
CurrentNotifyError = element;
if (CurrentNotifyError != null) {
CurrentNotifyError.ErrorsChanged += NotifyErrorsChanged;
if (CurrentNotifyError.HasErrors) {
foreach (var v in CurrentNotifyError.GetErrors (property)) {
MaybeEmitError (v as string, v as Exception);
}
} else {
MaybeEmitError (null, null);
}
}
}