数据验证属性显示错误的错误消息

时间:2016-03-03 14:23:29

标签: wpf validation mvvm

我有MVVM WPF应用程序,其中模型属性使用验证属性Required和custom属性进行修饰,以检查值是否已存在。验证是在LostFocus上进行的 如果我输入的数据(TextBox)不满足第一个属性,则会显示正确的错误消息,但是如果我修改了这个数据,但是不满足第二个属性,则仍会显示来自第一个属性的错误消息。
如果我输入第一个错误值,然后输入正确值,然后输入第二个错误值,则显示正确的错误信息 我还尝试不使用属性执行验证,但检查属性设置器中的值并抛出异常,一切正常 哪里可以出错?

1 个答案:

答案 0 :(得分:0)

问题在于IValueConverter的实现,用于将错误消息显示为控件的工具提示。

不工作:

<Style x:Key="ErrorToolTipStyle" TargetType="Control">
  <Setter Property="ToolTip" Value="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=(Validation.Errors), Converter={StaticResource ValidationErrorsToString}, Mode=OneWay}"/>
</Style>  

工作:

<Style x:Key="ErrorToolTipStyle" TargetType="Control">
  <Setter Property="ToolTip" Value="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=(Validation.Errors)[0].ErrorContent, Mode=OneWay}"/>
</Style>