У меня есть стиль для TextBox
, чтобы показать сообщение об ошибке проверки следующим образом:WPF Expander все еще показывает Validation Adorner Ошибки при сжалось
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="ToolTip"
Value="{Binding RelativeSource={x:Static RelativeSource.Self},
Path=(Validation.Errors)[0].ErrorContent}"/>
</Trigger>
</Style.Triggers>
<Setter Property="Validation.ErrorTemplate">
<Setter.Value>
<ControlTemplate>
<StackPanel Orientation="Horizontal">
<Border BorderBrush="{Binding Path=ErrorContent,
Converter={StaticResource ValidationErrorToBrushConverter}}" BorderThickness="2">
<AdornedElementPlaceholder />
</Border>
<Image Name="image1" Height="14" Width="14" Stretch="Fill" Margin="1,1,1,1"
Source="{Binding Path=ErrorContent,
Converter={StaticResource ValidationErrorToImageSourceConverter}}"
ToolTip="{Binding Path=ErrorContent}"/>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
The TextBox
жизни в Expander
. Когда я открываю Expander, TextBox
допускает ввод, но не проверяет достоверность, если вход NullorEmpty
или содержит специальные символы.
Моя проблема заключается в том, что когда я вызываю ошибку проверки, загорается красный значок TextBox
и отображается значок с сообщением в виде всплывающей подсказки. Все хорошо до сих пор. НО, когда я закрываю Expander
без прохождения проверки, красный контур и значок с подсказкой все еще там! Даже с Expander
сократились! Просто плавает там ... Это нехорошее поведение.
Любые идеи о том, как получить материал проверки, чтобы скрыть все остальные элементы управления в Expander
? Кроме того, стиль для проверки объявляется в ресурсах UserControl, а не в Expander
.
Check [этот ответ] (http://stackoverflow.com/questions/1471451/wpf-error -template-red-box-still-visible-on-collapse-of-an-expandander/1471733 # 1471733) или [этот ответ] (http://stackoverflow.com/questions/321327/how-do-i-get -rid-of-the-the-red-rectangle-when-my-wpf-binding-validation-has-failed-a/321987 # 321987) для потенциальных решений. Любой из этих двух будет работать для вас. –