Как отобразить ошибку IDataErrorInfo во всплывающей подсказке на DataGridTextColumn?

С текстовым полем это работает хорошо, когда я помещаю следующий xml в App.xml:

    <Style TargetType="{x:Type TextBox}" x:Key="TextBoxValidationStyle">
        <Style.Triggers>
            <Trigger Property="Validation.HasError" Value="true">
                <Setter Property="ToolTip"
            Value="{Binding RelativeSource={RelativeSource Self}, 
                   Path=(Validation.Errors)[0].ErrorContent}"/>
            </Trigger>
        </Style.Triggers>
    </Style>

Но это работает только для текстового поля, как сделать аналогичную вещь с DataGridTextColumn?

1 ответ

Решение

Просто использовать DataGridTextColumn.ElementStyle и / или DataGridTextColumn.EditingElementStyle, например:

<DataGridTextColumn MinWidth="80" ...>
    <DataGridTextColumn.ElementStyle>
    <Style TargetType="{x:Type TextBlock}">
            <Style.Triggers>
                <Trigger Property="Validation.HasError" Value="true">
                    <Setter Property="ToolTip"
                Value="{Binding RelativeSource={RelativeSource Self}, 
                       Path=(Validation.Errors)[0].ErrorContent}"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
Другие вопросы по тегам