wpf-Fehler-Vorlage - rote box immer noch sichtbaren Zusammenbruch des Expanders

Mache ich einige, die Validierung auf die Datenquelle des Textfelds innerhalb eines Expander-und haben gefunden, dass, sobald ein Validierungsfehler ausgelöst hat, falls ich umfalle, den Expander, das rote Feld bleibt, wo die TextBox gewesen wäre.

<Expander Header="Blah Blah Blah">
  <TextBox Name="TextBox"
           Validation.ErrorTemplate="{DynamicResource TextBoxErrorTemplate}"
           Text="{Binding Path=Blah,
                          UpdateSourceTrigger=PropertyChanged,
                          ValidatesOnDataErrors=True}" />
</Expander>

Habe ich versucht, um diese durch die Bindung der Sichtbarkeit des Fehlers Vorlage zum Expander, aber ich denke, es ist etwas falsch mit der Bindung.

<local:NotVisibleConverter x:Key="NotVisibleConverter" />

<ControlTemplate x:Key="TextBoxErrorTemplate">
  <DockPanel>
    <Border BorderBrush="Red" BorderThickness="2" 
            Visibility="{Binding Path=IsExpanded, 
                                 Converter={StaticResource NotVisibleConverter}, 
                                 RelativeSource={RelativeSource AncestorType=Expander}}" >
      <AdornedElementPlaceholder Name="MyAdorner" />
    </Border>
  </DockPanel>
  <ControlTemplate.Triggers>
    <Trigger Property="Validation.HasError" Value="true">
        <Setter Property="ToolTip"
                Value="{Binding RelativeSource={RelativeSource Self}, 
                                Path=(Validation.Errors)[0].ErrorContent}"/>
    </Trigger>
  </ControlTemplate.Triggers>
</ControlTemplate>

Ich denke, ich habe ein Problem mit meiner Bindung, kann jemand mir wieder auf die Strecke bitte? Alternativ kennt jemand eine andere Lösung für das ErrorTemplate noch sichtbar auf den Zusammenbruch des Expanders?

InformationsquelleAutor Andy Clarke | 2009-09-24
Schreibe einen Kommentar