protected override void OnAttached() { base.OnAttached(); AssociatedObject.PasswordChanged += OnPasswordBoxValueChanged; // using _value saved before in OnPropertyChanged if (CachedValue != null) { if (CachedValue.Length == 0) { AssociatedObject.Password = string.Empty; } else { AssociatedObject.Password = CachedValue.ConvertToUnsecureString(); } } }