密码框上的 Catel 验证不起作用
本文关键字:验证 不起作用 Catel 密码 | 更新日期: 2023-09-27 18:34:47
无法对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"));
}
}
原因是密码框不可绑定。这意味着由于该绑定,它无法检测到任何验证结果(因为它无法绑定(。
我不确定是否可以将错误从 UpdateBindingOnPasswordChanged 行为传播到 PasswordBox。