インターフェイスを使用して 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 の既定のコントロール テンプレートを変更することにあまり熱心ではありません。他の提案は大歓迎です。