Szablon błędu jest wyświetlany nad innymi kontrolkami, gdy powinien być ukryty

Usiłuję zaimplementować sprawdzanie poprawności w mojej aplikacji WPF przy użyciuIDataErrorInfo interfejs, a ja spotkałem się z niezbyt pożądaną sytuacją.

Mam ten szablon, który jest używany, gdy formant nie sprawdza poprawności

<code><ControlTemplate x:Key="errorTemplate">
    <DockPanel LastChildFill="true">
        <Border Background="Red" DockPanel.Dock="Right" Margin="5,0,0,0" Width="20" Height="20" CornerRadius="10"
                                    ToolTip="{Binding ElementName=customAdorner, Path=AdornedElement.(Validation.Errors)[0].ErrorContent}">
            <TextBlock Text="!" VerticalAlignment="Center" HorizontalAlignment="Center" FontWeight="Bold" Foreground="White" />
        </Border>
        <AdornedElementPlaceholder Name="customAdorner" VerticalAlignment="Center" >
            <Border BorderBrush="red" BorderThickness="1" />
        </AdornedElementPlaceholder>
    </DockPanel>
</ControlTemplate>
</code>

Wszystko jest dobrze, dopóki nie spróbuję wyświetlić czegoś ponad kontrolę, która nie przeszła walidacji, na przykład wyświetlenie nad nią elementu dokowania:

Jak mogę tego uniknąć i uczynić mój szablon błędu wyświetlany poniżej elementu dokowania, tak jak powinien?

EDYTOWAĆ

Odkryłem, że mogę owinąć mojeTextBox zAdornerDecorator aby to naprawić, ale naprawdę nie chcę tego robić dla każdegoTextBox kontrola w mojej aplikacji. Czy jest jakiś sposób na ustawienie go za pomocąStyle czy w jakiś inny sposób?

EDYCJA 2

Prawdopodobnie mogę zmienić domyślneTextBox ControlTemplate, aby dołączyćAdornerDecorator, ale nie jestem zbyt zainteresowany zmianą domyślnych szablonów kontroli WPF. Wszelkie inne sugestie są mile widziane.

questionAnswers(3)

yourAnswerToTheQuestion