public override void OnValueChanged(DependencyObject sender, DependencyPropertyChangedEventArgs eventArg) { var passwordBox = (sender as PasswordBox); if (passwordBox == null) { return; } // Remove previous event. passwordBox.PasswordChanged -= PasswordBox_PasswordChanged; if ((bool)eventArg.NewValue) { HasTextProperty.SetValue(passwordBox); // Add event listener to monitor for changes. passwordBox.PasswordChanged += PasswordBox_PasswordChanged; } }
/// <summary> /// Fired when the <see cref="PasswordBox"/> password value changes. /// </summary> /// <param name="sender">Element to set the property</param> /// <param name="e"></param> private static void PasswordBox_PasswordChanged(object sender, RoutedEventArgs e) { HasTextProperty.SetValue((PasswordBox)sender); }