如何在DataGridTextColumn上显示IDataErrorInfo中的错误提示?

8

使用文本框,当我将以下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个回答

14

可以使用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>

1
是的,它有效!请使用DataGridTextColumn.EditingElementStyle而不是DataGridTextColumn.ElementStyle。谢谢 :) - JatSing
如果您想使用DataGridTextColumn.ElementStyle,只需将<Style TargetType =“{x:Type TextBox}”>更改为<Style TargetType =“{x:Type TextBlock}”>即可。 - JatSing

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接