PasswordBox上的Catel验证无效

时间:2016-02-16 00:37:44

标签: c# wpf mvvm catel

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

1 个答案:

答案 0 :(得分:0)

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

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