Я пытаюсь выполнить проверку в моем приложении WPF с помощью интерфейса IDataErrorInfo
, и я столкнулся с не очень желательной ситуацией.
У меня есть этот шаблон, который используется, когда элемент управления не проверяет
<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>
Все хорошо, пока я не попытаюсь отобразить что-то выше элемента управления, который не прошел проверку, например, отображая над ним надстройку:
Как я могу избежать этого и сделать мой шаблон ошибки отображаемым под элементом док-станции, как и должно быть?
ИЗМЕНИТЬ
Я обнаружил, что могу поместить мой TextBox
с помощью AdornerDecorator
, чтобы исправить это, но я действительно не хочу делать это для каждого элемента управления TextBox
в моем приложении. Может ли быть способ установить его с помощью Style
или каким-либо другим способом?
РЕДАКТИРОВАТЬ 2
Возможно, я мог бы изменить стандартный TextBox
ControlTemplate по умолчанию, чтобы включить AdornerDecorator
, но я не слишком сильно хочу изменить какие-либо шаблоны управления по умолчанию WPF. Любые другие предложения приветствуются.