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); } }
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); } }
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; } }