J'ai un style pour un TextBox
afficher un message d'erreur de validation comme suit:WPF Expander affiche toujours l'erreur de validation Adorner quand diminué
<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>
Les TextBox
vie dans un Expander
. Quand j'ouvre l'Expander, le TextBox
permet la saisie, mais échouera la validation si l'entrée est NullorEmpty
, ou contient des caractères spéciaux.
Mon problème est que lorsque je déclenche une erreur de validation, le TextBox
s'allume en rouge et affiche une icône avec le message sous forme d'info-bulle. Tout va bien jusqu'ici. MAIS quand je ferme le Expander
sans passer la validation, le contour rouge et l'icône avec info-bulle sont toujours là! Même avec le Expander
rétréci! Juste flottant là ... Ce n'est pas un bon comportement.
Des idées sur la façon d'obtenir la substance de validation à cacher avec tous les autres contrôles dans le Expander
? En outre, le style pour la validation est déclaré dans les ressources de UserControl, pas dans le Expander
lui-même.
Vérifiez [cette réponse] (http://stackoverflow.com/questions/1471451/wpf-error -template-red-box-encore-visible-sur-effondrement-d'un expander/1471733 # 1471733) ou [cette réponse] (http://stackoverflow.com/questions/321327/how-do-i-get -rid-du-red-rectangle-quand-ma-wpf-binding-validation-has-failed-a/321987 # 321987) pour des solutions potentielles. Chacune de ces deux travaillera pour vous. –