1

这是我的代码,它应该为 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>

我希望它显示一个带有工具提示的错误图标,解释出了什么问题。

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

我做错什么了?

4

1 回答 1

4

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

于 2012-04-11T13:25:56.557 回答