
Public static readonly DependencyProperty SecurePasswordProperty =ĭependencyProperty.RegisterAttached("SecurePassword", typeof(SecureString), typeof(MyWindow)) ĭataContext = myObject // created somewhereīinding passwordBinding = new Binding(SecurePasswordProperty.Name) Then, the corresponding Window code like this will trigger PasswordBox binding: // add a custom DependencyProperty If (SecurePassword = null || SecurePassword.Length = 0)Īnd a Window Xaml with a PasswordBox like this: this is where I code my custom business rule If (memberName = "SecurePassword" || memberName = null) Private string Validate(string memberName) Let's suppose I have an MVVM object like this, with WPF validation using IDataErrorInfo: public class MyObject : INotifyPropert圜hanged, IDataErrorInfo Any idea?Īnother solution, without using any "unsecure" string in the middle, is to adapt the Window code, something like this: But for my PasswordBox never gets the value. If we made any mistake (defined on my Validation class), when I do this: if (!beUserName.HasError & !bePassword.HasError)Įach BindingExpression should say true of false depending on error validations. If (bePassword != null) bePassword.UpdateSource() If (beUserName != null) beUserName.UpdateSource() Īnd this is how I get it for the PasswordBox: BindingExpression bePassword = textBoxUserPass.GetBindingExpression(PasswordBoxAssistant.BoundPassword) This is how I get the BindingExpression for each TextBox: BindingExpression beUserName = textBoxUserName.GetBindingExpression(TextBox.TextProperty)


This is a regular TextBox that I use and works fine: Īnd this is the PasswordBox I tried to simulate:

So, apparently, fantastic! I can bind my PasswordBox with its Password property, so then I can bind with my validation. Because its Password is not bindable due to security reasons, I tried to make a binding following this link (also explained here, for CodeProject users).
#WPF PASSWORDBOX VALIDATE REQUIRED HOW TO#
For making validations I followed this link, that shows how to validate on TextBox. I'm trying to make a validation for a PasswordBox.
