5

MSDN は「単純なコントロールのように Validation.ErrorTemplate 添付プロパティを使用できない」と言って混乱しているようですが、すべてのウィンドウ xaml で以下のような検証エラー テンプレートを設定できることがわかりました。

<DataGridTextColumn ...>
    ...
    <DataGridTextColumn.EditingElementStyle>
        <Style>
            <Setter Property="Validation.ErrorTemplate" 
                    Value="{StaticResource MyValidationErrorTemplate}"/>
        </Style>
    </DataGridTextColumn.EditingElementStyle>
</DataGridTextColumn>

ここで必要なのは、共有テーマ リソース ディクショナリ内のすべてのデータグリッドのエラー テンプレートを設定することです。しかし、私は次のことができません:

<Style TargetType="{x:Type DataGridTextColumn}">
    <Setter Property="Validation.ErrorTemplate" 
            Value="{StaticResource MyValidationErrorTemplate}"/>
</Style>

DataGridTextColumnから継承されていないためですFrameworkElement。したがって、style プロパティを持つことはできません (なぜ DataGridTextColumn のスタイルを設定できないのですか? を参照してください)。

誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

0

同じ質問に対する答えを探しています。次のスタイルのようなものを使用して、割り当てを少し冗長にすることができます。

<Style x:Key="TextColumnErrorStyle" TargetType="{x:Type TextBox}">
    <Setter Property="Validation.ErrorTemplate" Value="{StaticResource ErrorTemplateStyle}"></Setter>
</Style>

使用法:

<DataGridTextColumn Width="2*"  Header="IP Address" 
    Binding="{Binding IpDestination,    
    UpdateSourceTrigger=PropertyChanged, 
    ValidatesOnExceptions=True}"
    EditingElementStyle="{StaticResource TextColumnErrorStyle}"/>

うーん。

于 2016-06-04T15:19:34.133 に答える