WPF: Como fazer um PasswordEditor para a PropertyGrid

Neste artigo vamos fazer um PasswordEditor para a PropertyGrid do Extended WPF Toolkit.

public class PasswordEditor : ITypeEditor
{
    PropertyItem _propertyItem;
    PasswordBox _passwordBox;
 
    public FrameworkElement ResolveEditor(PropertyItem propertyItem)
    {
        _propertyItem = propertyItem;
  
        _passwordBox = new PasswordBox();
        _passwordBox.Password = (string)propertyItem.Value;
        _passwordBox.LostFocus += OnLostFocus;
  
        return _passwordBox;
    }
 
    void OnLostFocus(object sender, RoutedEventArgs e)
    {
        if (!_passwordBox.Password.Equals((string)_propertyItem.Value))
        {
            _propertyItem.Value = _passwordBox.Password;
        }
    }
}

Não podemos ligar à propriedade da password directamente, porque não existe uma DependencyProperty, por isso passamos o valor à propriedade quando se perde o foco da caixa da password.

Reparem que vão ficar com a password sem encriptação em memória, por isso ajam de acordo.

O resultado final:

PasswordEditor para a PropertyGrid
PasswordEditor para a PropertyGrid
Nuno Freitas
Publicado por Nuno Freitas em 31 março, 2014

Artigos relacionados