/// <summary>
        /// Shows a validation failure.
        /// </summary>
        /// <param name="validationFailure">Information about the validation failure, including the element on which to show the validation and the validation result.</param>
        public void ShowValidationFailure(ValidationElementResult validationFailure)
        {
            var errorTemplate = ValidationScope.GetValidationTemplate(validationFailure.Element);
            if (errorTemplate != null)
            {
                var adornerLayer = AdornerLayer.GetAdornerLayer(validationFailure.Element);
                if (adornerLayer != null)
                {
                    validationFailure.Element.Loaded += Element_Loaded;
                    FocusExtensions.Monitor(validationFailure.Element);

                    var existingAdorner = validationFailure.Element.GetValue(ValidationErrorAdornerProperty) as TemplatedAdorner;
                    if (existingAdorner != null)
                    {
                        // Update the message displayed in the existing adorner
                        existingAdorner.DataContext = validationFailure.Result.Message;
                    }
                    else
                    {
                        var adorner = new TemplatedAdorner(validationFailure.Element, validationFailure.Result.Message, errorTemplate);
                        adornerLayer.Add(adorner);
                        validationFailure.Element.SetValue(ValidationErrorAdornerProperty, adorner);
                    }
                }
            }
        }
 /// <summary>
 /// Removes the validation failure.
 /// </summary>
 /// <param name="validationFailure">Information about the validation failure, including the element on which to show the validation and the validation result.</param>
 public void RemoveValidationFailure(ValidationElementResult validationFailure)
 {
     var adorner = validationFailure.Element.GetValue(ValidationErrorAdornerProperty) as Adorner;
     if (adorner != null)
     {
         var adornerLayer = AdornerLayer.GetAdornerLayer(validationFailure.Element);
         if (adornerLayer != null)
         {
             adornerLayer.Remove(adorner);
             validationFailure.Element.SetValue(ValidationErrorAdornerProperty, null);
         }
     }
 }