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: