0

WPF デスクトップ アプリケーションを作成するだけです。さまざまな検証を使用しています。NotifyOnValidationError=True,ValidatesOnDataErrors=True,ValidatesOnExceptions=True を使用している場合は TextBox で、正常に動作していますが、TextBlock で同じものを使用している場合、ブロック全体が赤い記号で強調表示されます .... エクスクラが必要です。(!)マークですNotifyOnValidationError=True,ValidatesOnDataErrors=True,ValidatesOnExceptions=True。私は何をすべきか ?

4

1 に答える 1

1

Validation クラスで定義されている既定のエラー テンプレートをオーバーライドする場合は、単純に ControlTemplate を定義し、それを TextBlockValidation.ErrorTemplate添付プロパティに割り当てることができます。

<TextBlock
Validation.ErrorTemplate="{StaticResource TextBlockErrorTemplate}">     
<TextBlock>

Resource ディクショナリ内で、次のようにエラー テンプレートを定義できます。

 <ControlTemplate x:Key="TextBlockErrorTemplate">
            <DockPanel LastChildFill="True">
                <TextBlock DockPanel.Dock="Right"
                           Foreground="Red"
                           FontSize="14pt"
                           Margin="-15,0,0,0"
                           FontWeight="Bold">!
                </TextBlock>
                <AdornedElementPlaceholder Name="controlWithError" />
            </DockPanel>
        </ControlTemplate>
于 2012-06-22T02:47:05.070 に答える