PasswordBox 上的 Catel 验证不起作用
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"));
}
}
原因是密码框不可绑定。这意味着由于该绑定,它无法检测到任何验证结果(因为它无法绑定)。
我不确定是否可以将错误从 UpdateBindingOnPasswordChanged 行为传播到 PasswordBox。
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。