static void OnResetPasswordChanged(DependencyObject depObj, DependencyPropertyChangedEventArgs e)
        {
            PasswordBoxBehavior behavior = depObj as PasswordBoxBehavior;
            PasswordBox         item     = behavior.AssociatedObject as PasswordBox;

            if (item == null)
            {
                return;
            }

            if ((bool)e.NewValue)
            {
                item.Password = string.Empty;
            }

            behavior.ResetPassword = false;
        }
        static void OnTextChanged(DependencyObject depObj, DependencyPropertyChangedEventArgs e)
        {
            PasswordBoxBehavior behavior = depObj as PasswordBoxBehavior;
            PasswordBox         item     = behavior.AssociatedObject as PasswordBox;

            if (item == null)
            {
                return;
            }

            if (item.Password != e.NewValue as string)
            {
                item.Password = e.NewValue as string;
            }

            if (!behavior.isRoutedEventHandlerAssign)
            {
                item.PasswordChanged += (sender, eArg) =>
                {
                    behavior.Text = item.Password;
                };
                behavior.isRoutedEventHandlerAssign = true;
            }
        }