这是我的代码,它应该为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>
我希望它显示一个错误图标,其中包含解释错误的工具提示。
正在显示错误图标,但缺少工具提示。
我做错了什么?
答案 0 :(得分:4)
您似乎忘了在<AdornedElementPlaceholder />
上设置名称。它应为<AdornedElementPlaceholder x:Name="adornedElement" />
,否则您的Binding ElementName=adornedElement
将无效