[英]Catel validation on PasswordBox is not working
无法验证PasswordBox
。 当我将鼠标悬停在PasswordBox
上时,没有用红色边框突出显示,也没有消息。 对于TextBox
它运作良好。 如何解决这个问题?
<TextBox Height="23" Margin="10,40,10,0" TextWrapping="Wrap" VerticalAlignment="Top" HorizontalAlignment="Center"
Text="{Binding Login, ValidatesOnDataErrors=True, NotifyOnValidationError=True}" Width="220"/>
<PasswordBox Margin="10,100,10,0" Height="23" VerticalAlignment="Top" HorizontalAlignment="Center" Width="220" >
<i:Interaction.Behaviors>
<catel:UpdateBindingOnPasswordChanged Password="{Binding Password, Mode=TwoWay, ValidatesOnDataErrors=True, NotifyOnValidationError=True}" />
</i:Interaction.Behaviors>
</PasswordBox>
C#代码
protected override void ValidateFields(List<IFieldValidationResult> validationResults)
{
if (string.IsNullOrEmpty(Login))
{
validationResults.Add(FieldValidationResult.CreateError(LoginProperty, "Login cannot be empty"));
}
if (string.IsNullOrEmpty(Password))
{
validationResults.Add(FieldValidationResult.CreateError(PasswordProperty, "Password cannot be empty"));
}
}
原因是PasswordBox是不可绑定的。 这意味着由于该绑定,它无法检测到任何验证结果(因为它无法绑定)。
我不确定是否可以将错误从UpdateBindingOnPasswordChanged行为传播到PasswordBox。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.