private void OnTextToSourceValueConversionFailed(object sender, RoutedEventArgs e)
 {
     if (AdornerStoryboard != null && adorner != null)
     {
         adorner.State = HighlightAdornerState.Visible;
         // Show visual indicator it has failed.
         AdornerStoryboard.Begin(adorner);
     }
 }
Exemple #2
0
 private void OnTextToSourceValueConversionFailed(object sender, RoutedEventArgs e)
 {
     if (textBoxAndAdorners != null && AdornerStoryboard != null)
     {
         var adorner = textBoxAndAdorners.FirstOrDefault(x => x.TextBox == sender).Adorner;
         if (adorner != null)
         {
             adorner.State = HighlightAdornerState.Visible;
             // Show visual indicator it has failed.
             AdornerStoryboard.Begin(adorner);
         }
     }
 }
        protected override void OnDetaching()
        {
            base.OnDetaching();

            AssociatedObject.Validating -= OnValidating;
            AssociatedObject.TextToSourceValueConversionFailed -= OnTextToSourceValueConversionFailed;

            if (adorner != null)
            {
                if (AdornerStoryboard != null)
                {
                    AdornerStoryboard.Remove(adorner);
                }
                AdornerLayer.GetAdornerLayer(AssociatedObject)?.Remove(adorner);
            }
        }
Exemple #4
0
        protected override void OnDetaching()
        {
            base.OnDetaching();

            AssociatedObject.Loaded -= OnAssociatedObjectLoaded;
            var textBoxes = AssociatedObject.FindVisualChildrenOfType <TextBoxBase>();

            textBoxes.ForEach(x =>
            {
                x.Validating -= OnValidating;
                x.TextToSourceValueConversionFailed -= OnTextToSourceValueConversionFailed;
            });

            if (textBoxAndAdorners != null)
            {
                if (AdornerStoryboard != null)
                {
                    textBoxAndAdorners.ForEach(tba => AdornerStoryboard.Remove(tba.Adorner));
                }
                textBoxAndAdorners.ForEach(tba => AdornerLayer.GetAdornerLayer(tba.TextBox)?.Remove(tba.Adorner));
                textBoxAndAdorners = null;
            }
        }