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

时间:2012-04-11 09:30:36

标签: c# wpf xaml

这是我的代码,它应该为WPF模仿WinForm的ErrorProvider:

    <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>

我希望它显示一个错误图标,其中包含解释错误的工具提示。

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

我做错了什么?

1 个答案:

答案 0 :(得分:4)

您似乎忘了在<AdornedElementPlaceholder />上设置名称。它应为<AdornedElementPlaceholder x:Name="adornedElement" />,否则您的Binding ElementName=adornedElement将无效