public override void OnValueChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) { //Get the caller var passwordBox = (sender as PasswordBox); //make sure that is a PasswordBox if (passwordBox == null) { return; } //Remove any previous Event passwordBox.PasswordChanged -= PasswordBox_PasswordChanged; //If the caller set MonitorPassword to true... if ((bool)e.NewValue) { //Set Default property HasTextProperty.SetValue(passwordBox); //Star listening out for password Changes passwordBox.PasswordChanged += PasswordBox_PasswordChanged;; } }
/// <summary> /// fires when the passwordbox value changes /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void PasswordBox_PasswordChanged(object sender, RoutedEventArgs e) { //Set the HasText attached value HasTextProperty.SetValue((PasswordBox)sender); }