c# – 如何验证PasswordBox WPF
发布时间:2020-12-15 06:29:19 所属栏目:百科 来源:网络整理
导读:我试图验证一个PasswordBox.对于进行验证,我遵循这个 link,这显示了如何在TextBox上进行验证. 密码盒出现问题.由于密码由于安全性原因而无法绑定,所以我试图在this link之后进行绑定(对于CodeProject用户也已解释为here). 所以,显然,太棒了!我可以绑定我的
我试图验证一个PasswordBox.对于进行验证,我遵循这个
link,这显示了如何在TextBox上进行验证.
密码盒出现问题.由于密码由于安全性原因而无法绑定,所以我试图在this link之后进行绑定(对于CodeProject用户也已解释为here). 所以,显然,太棒了!我可以绑定我的密码框与其密码属性,所以我可以绑定我的验证.但它忽略了我… 这是一个常规的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> 这是我如何获得每个TextBox的BindingExpression: BindingExpression beUserName = textBoxUserName.GetBindingExpression(TextBox.TextProperty); if (beUserName != null) beUserName.UpdateSource(); 这是我如何得到它的密码框: BindingExpression bePassword = textBoxUserPass.GetBindingExpression(PasswordBoxAssistant.BoundPassword); if (bePassword != null) bePassword.UpdateSource(); 如果我们犯了错误(在我的验证类中定义),当我这样做: if (!beUserName.HasError && !bePassword.HasError) 根据错误验证,每个BindingExpression应该将其设为false.但是对于我的PasswordBox从来没有获得价值…任何想法? 解决方法
尝试设置ValidatesOnDataErrors = True和ValidatesOnExceptions = True对您的绑定:
<PasswordBox ... local:PasswordBoxAssistant.BoundPassword="{Binding Path=Password,UpdateSourceTrigger=Explicit,ValidatesOnDataErrors=True,ValidatesOnExceptions=True}" /> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |