public RegisteredElementForEmptyTextValidation(FrameworkElement element, IFormKeyboardFocusChanged form, Func <string> textFunction, bool ignoreFocus = false) { Element = element; FocusScopeElement = form; TextFunction = textFunction; GotFocusOnce = ignoreFocus; }
public static void UnregisterFromEmptyTextValidation(IFormKeyboardFocusChanged form) { List <RegisteredElementForEmptyTextValidation> elementsToRemove = RegisteredElementsForEmptyTextValidation.Where(s => s.FocusScopeElement == form).ToList(); // // Notice that all this code controls the attached property InfoBalloon.IsOpen on autocompleteboxes, // textboxes etc that registered. // Don't forget to reset this property when unregistering. // elementsToRemove.ForEach(e => e.Element.ClearValue(IsOpenProperty)); elementsToRemove.ForEach(e => RegisteredElementsForEmptyTextValidation.Remove(e)); }
public static void RegisterForAutomaticEmptyTextValidation( FrameworkElement element, Func <string> textFunc, IFormKeyboardFocusChanged form, bool ignoreFocus = false ) { if (form != null && RegisteredElementsForEmptyTextValidation.All(s => s.FocusScopeElement != form)) { form.KeyboardFocusForValidationChanged += OnKeyboardFocusChanged; } RegisterForEmptyTextValidation(element, textFunc, form, ignoreFocus); }
public static void RegisterForEmptyTextValidation( FrameworkElement element, Func <string> textFunc, IFormKeyboardFocusChanged form, bool ignoreFocus = false ) { if (RegisteredElementsForEmptyTextValidation.All(s => s.Element != element)) { RegisteredElementsForEmptyTextValidation.Add( new RegisteredElementForEmptyTextValidation(element, form, textFunc, ignoreFocus) ); } }
public static void UnregisterFromAutomaticEmptyTextValidation(IFormKeyboardFocusChanged form) { UnregisterFromEmptyTextValidation(form); form.KeyboardFocusForValidationChanged -= OnKeyboardFocusChanged; }