繁体   English   中英

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"));
        }
    }

原因是PasswordBox是不可绑定的。 这意味着由于该绑定,它无法检测到任何验证结果(因为它无法绑定)。

我不确定是否可以将错误从UpdateBindingOnPasswordChanged行为传播到PasswordBox。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM