Modelo de erro é exibido acima de outros controles, quando deveria estar oculto
Eu estou tentando implementar a validação no meu aplicativo WPF usando oIDataErrorInfo
interface, e eu encontrei uma situação não tão desejável.
Eu tenho este modelo que é usado quando um controle não consegue validar
<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>
Tudo está bem até eu tentar mostrar algo acima do controle que falhou na validação, como exibir um item de dock acima dele:
Como posso evitar isso e exibir meu modelo de erro abaixo do item de encaixe, como deveria?
EDITAR
Eu achei que eu poderia envolver meuTextBox
com umAdornerDecorator
para consertar isso, mas eu realmente não quero fazer isso para cada umTextBox
controle na minha aplicação. Existe talvez uma maneira de configurá-lo com umStyle
ou de alguma outra maneira?
EDIT 2
Eu provavelmente poderia mudar o padrãoTextBox
ControlTemplate para incluir umAdornerDecorator
, mas não estou muito interessado em alterar qualquer um dos modelos de controle padrão do WPF. Quaisquer outras sugestões são bem vindas.