Я пропускал что-то?
1-Стилей
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Validation.HasError}" Value="true">
<Setter Property="BorderBrush" Value="Blue" />
</DataTrigger>
</Style.Triggers>
<Setter Property="MinWidth" Value="160" />
<Setter Property="Margin" Value="0 7 0 0"/>
</Style>
2 - Viewmodel реализуют текстовое поле IDataErrorInfo 3-в поле зрения
<TextBox x:Name="FirstName" Text="{Binding Person.FirstName, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=true}"></TextBox>
3 - Я использую Меч MVVM
Я получил "ошибку пути BindingExpression: свойство 'Validation', не найденное на 'объектном' ''PersonWindowViewModel' (HashCode=38783181)'. BindingExpression:Path=Validation. HasError; DataItem ='PersonWindowViewModel' (HashCode=38783181); целевым элементом является 'Текстовое поле' (Имя ='FirstName'); целевым свойством является 'NoTarget' (введите 'Объект'), "S
Ознакомьтесь со статьей Бет Масси о реализации проверки здесь
По сути, вы использовали DataTrigger
, где вам просто нужен триггер
] Итак:
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter ... />
</Trigger>
</Style.Triggers>