このトピックは、コントロールが検証エラーを処理する方法を説明します。
このトピックを理解するためには、次のトピックを理解しておく必要があります。
コントロールが IDataErrorInfo インターフェイスを実装するデータ項目のデータ ソースへバインドされる場合、検証エラーをユーザーに示すことができます。表示モードおよび編集モードでデフォルトはエラー情報の周りに赤い境界線が描画されます。エラー インジケーターを有効にするには、SupportDataErrorInfo プロパティを true
に設定します。
以下の画像は 2 つのダイアグラム項目を表示します。左の項目に検証エラーはありませんが、右の項目には空のフィールドがあるため、検証エラーがあります。
以下のコード スニペットのように、TextBlock
型をターゲットするスタイルを定義すると、エラー検証の表示テンプレートをカスタマイズできます。
XAML の場合:
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Validation.ErrorTemplate">
<Setter.Value>
<ControlTemplate>
<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>
</Setter.Value>
</Setter>
</Style>
以下の画像は、以上のカスタム エラー検証の表示テンプレートを表示します。
以下のコード スニペットのように、AdvancedFocusTextBox 型をターゲットするスタイルを定義すると、エラー検証の表編集ンプレートをカスタマイズできます。
XAML の場合:
<Style TargetType="{x:Type igPrim:AdvancedFocusTextBox}" >
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="Margin" Value="0,2,40,2" />
<Setter Property="Validation.ErrorTemplate">
<Setter.Value>
<ControlTemplate>
<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>
</Setter.Value>
</Setter>
</Style>
以下の画像は、以上のカスタム エラー検証の編集テンプレートを表示します。
このトピックに関連する追加情報については、以下のトピックを参照してください。