2010-10-07 4 views
1

У меня есть TextBox, который скрывается в зависимости от того, выбран ли элемент в ComboBox.WPF: Validation.ErrorTemplate не скрыт, когда украшен элемент управления (TextBox) скрыт

Эта часть работает нормально.

Однако он также имеет установленное значение ValidatesOnDataErrors, и если в TextBox присутствует ошибка, то при стирании TextBox сохраняется ErrorTemplate (на уровне Adorner).

Я думаю, что я понимаю, что поскольку ErrorTemplate устанавливается в глобальный уровень Adorner, он не понимает, что TextBlock, с которым он не имеет логического подключения, был скрыт.

Любые мысли о том, как работать с этим или вокруг него? Я попытался добавить явный AdornerDecorator внутри Grid, который привязан к значению ComboBox.

+0

Я тоже ищу этот ответ. – Jordan

ответ

8

Вы, видимо, можете привязать видимость AdornerElementPlaceholder к виду самого рекламодателя. Вот мой код:

<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

Очень приятно! Хороший ответ и значок перелива! – rrhartjr

Смежные вопросы