我正在尝试对PasswordBox
. 为了进行验证,我遵循了这个链接,它显示了如何验证TextBox
。
问题随之而来PasswordBoxes
。因为Password
出于安全原因它不可绑定,所以我尝试在此链接之后进行绑定(也在这里解释,对于 CodeProject 用户)。
所以,显然,太棒了!我可以绑定我PasswordBox
的Password
属性,然后我可以绑定我的验证。但它无视我...
这是TextBox
我使用并且工作正常的常规:
<local:ErrorProvider Grid.Column="1" Grid.Row="2" >
<TextBox Width="160"
HorizontalAlignment="Left"
Name="textBoxUserPass"
Text="{Binding Path=Password, UpdateSourceTrigger=Explicit}" />
</local:ErrorProvider>
这是PasswordBox
我试图模拟的:
<local:ErrorProvider Grid.Column="1" Grid.Row="2" >
<PasswordBox Width="160"
HorizontalAlignment="Left"
Name="textBoxUserPass"
local:PasswordBoxAssistant.BindPassword="True"
local:PasswordBoxAssistant.BoundPassword="{Binding Path=Password, UpdateSourceTrigger=Explicit}" />
</local:ErrorProvider>
这就是我获得BindingExpression
for each的方式TextBox
:
BindingExpression beUserName = textBoxUserName.GetBindingExpression(TextBox.TextProperty);
if (beUserName != null) beUserName.UpdateSource();
这就是我得到它的方式PasswordBox
:
BindingExpression bePassword = textBoxUserPass.GetBindingExpression(PasswordBoxAssistant.BoundPassword);
if (bePassword != null) bePassword.UpdateSource();
如果我们犯了任何错误(在我的 Validation 类中定义),当我这样做时:
if (!beUserName.HasError && !bePassword.HasError)
根据错误验证,每个人都BindingExpression
应该说真或假。但是因为我PasswordBox
从来没有得到过价值......有什么想法吗?