如何将图像的工具提示绑定到 XAML 中的异常错误消息

本文关键字:XAML 异常 消息 错误 绑定 图像 工具提示 | 更新日期: 2023-09-27 18:30:38

这是我的代码,

它应该模仿WinForm的ErrorProvider for WPF:

    <Window.Resources>
    <Style TargetType="{x:Type TextBox}">
        <Setter Property="Validation.ErrorTemplate">
            <Setter.Value>
                <ControlTemplate>
                    <DockPanel LastChildFill="True">
                        <Border BorderBrush="Red" BorderThickness="1" DockPanel.Dock="Left">
                            <AdornedElementPlaceholder />
                        </Border>
                        <Image Source="Images/dialog_error.png" Width="30" ToolTip="{Binding ElementName=adornedElement, 
                     Path=AdornedElement.(Validation.Errors), 
                     Converter={k:ValidationErrorsToStringConverter}}"/>
                    </DockPanel>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
        <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>    
</Window.Resources>

我希望它显示一个错误图标,并带有解释问题所在的工具提示。

显示错误图标,但缺少工具提示。

我做错了什么?

如何将图像的工具提示绑定到 XAML 中的异常错误消息

看起来你忘了在<AdornedElementPlaceholder />上设置名称。它应该是<AdornedElementPlaceholder x:Name="adornedElement" />否则你的Binding ElementName=adornedElement将无法工作