public override void OnValueChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { if (d is PasswordBox pb) { pb.PasswordChanged -= PasswordChanged; if ((bool)e.NewValue) { HasTextProperty.SetValue(pb); pb.PasswordChanged += PasswordChanged; } } }
private static void PasswordChanged(object sender, RoutedEventArgs e) { HasTextProperty.SetValue((PasswordBox)sender); }