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"));
}
}
答案 0 :(得分:0)
原因是PasswordBox不可绑定。这意味着由于该绑定,它无法检测到任何验证结果(因为它无法绑定)。
我不确定是否可以将错误从UpdateBindingOnPasswordChanged行为传播到PasswordBox。