2010-10-07 4 views
1

J'ai un TextBox qui est caché selon qu'un objet est sélectionné dans un ComboBox.WPF: Validation.ErrorTemplate non masqué lorsque le contrôle (TextBox) est masqué

Cette partie fonctionne très bien.

Toutefois, il a également ValidatesOnDataErrors ensemble et si le TextBox a une erreur présente, puis lorsque le TextBox est masqué, le ErrorTemplate (dans le calque Adorner) reste. Je pense que je comprends que parce que le ErrorTemplate est défini dans la couche Adorner globale, il ne réalise pas que le TextBlock, auquel il n'a aucune connexion logique, a été caché.

Des idées sur la façon de travailler avec ou autour de cela? J'ai essayé d'ajouter un AdornerDecorator explicite dans une grille, qui est liée à la valeur ComboBox.

+0

Je cherche aussi cette réponse. – Jordan

Répondre

8

Vous pouvez apparemment lier la visibilité du AdornerElementPlaceholder à celle de l'adorateur lui-même. Voici mon code:

<ControlTemplate x:Key="EmptyErrorTemplate"> 
    <Border Background="Transparent" BorderBrush="Transparent" BorderThickness="0" IsHitTestVisible="false" 
      Visibility="{Binding ElementName=placeholder, Path=AdornedElement.Visibility}"> 
     <StackPanel Orientation="Horizontal"> 
      <TextBlock Margin="0,0,-30,0" Text="!" 
         Foreground="Red" 
         FontSize="34" 
         VerticalAlignment="Center"/> 
      <AdornedElementPlaceholder Name="placeholder" /> 
     </StackPanel> 
    </Border> 
</ControlTemplate> 
+0

Très bien! Une bonne réponse et un badge tumbleweed! – rrhartjr

Questions connexes