2016-03-03 2 views
0

У меня есть приложение MVVM WPF, где свойства модели украшены атрибутами проверки. Обязательный и настраиваемый атрибут, который проверяет, существует ли значение. Проверка выполняется на LostFocus.
Если я ввожу данные (TextBox), которые не удовлетворяют первому атрибуту, отображается правильное сообщение об ошибке, но если я изменяю эти данные так, что не удовлетворяет второму атрибуту, сообщение об ошибке из первого атрибута все еще отображается.
Если я ввожу первое неправильное значение, затем исправлю значение, а затем второе плохое значение, отображается правильное сообщение об ошибке.
Я также попытался выполнить проверку не используя атрибуты, но проверяя значение в настройке свойств и исключении throwing, все работает нормально.
Где может быть ошибка?Атрибуты проверки данных, отображающие неверное сообщение об ошибке

ответ

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> 
Смежные вопросы