Проверка текстового поля в шаблоне элемента не работает
У меня есть текстовое поле в шаблоне элемента, как показано ниже.
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<WrapPanel Margin="2" >
<CheckBox IsHitTestVisible="false"
IsChecked="{Binding Status}"
Style="{StaticResource ResourceKey=TreeView_CheckBox_Style}" Visibility="Collapsed"></CheckBox>
<TextBox Text="{Binding Name, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
Background="Transparent"
IsReadOnly="True"
BorderThickness="0" TextWrapping="Wrap"
MouseDoubleClick="TextBox_MouseDoubleClick"
LostFocus="TextBox_LostFocus"
Style="{StaticResource ResourceKey=ValidationErrorStyle}" >
</TextBox>
</WrapPanel>
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
Мой стиль проверки
<Style TargetType="TextBox" BasedOn="{StaticResource ResourceKey=TextBoxStyle}" >
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors)[0].ErrorContent}" />
</Trigger>
</Style.Triggers>
</Style>
Но мой триггер проверки не запускается выше настройки. Любая помощь? Что мне здесь не хватает?
1 ответ
Решение
Обычно, когда мы предоставляем такой вид проверки в WPF, мы устанавливаем NotifyOnValidationError
собственность на True
на Binding
объект. Попробуй это:
<TextBox Text="{Binding Name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged,
NotifyOnValidationError=True}" Background="Transparent" IsReadOnly="True"
BorderThickness="0" TextWrapping="Wrap" MouseDoubleClick="TextBox_MouseDoubleClick"
LostFocus="TextBox_LostFocus" Style="{StaticResource ResourceKey=
ValidationErrorStyle}" />