【发布时间】:2016-06-14 20:20:37
【问题描述】:
我有一个包含两行两列的简单 WPF 网格。 第二列包含绑定到某些视图模型属性的 TextBox-es。我需要自定义这些 TextBoxes 验证 ErrorTemplates 以在问题框上方显示验证错误。
以下代码
<Style TargetType="Control" x:Key="ValidationControlStyle">
<Setter Property="Validation.ErrorTemplate">
<Setter.Value>
<ControlTemplate>
<StackPanel>
<TextBlock Foreground="Red"
Text="{Binding ElementName=ErrorAdorner, Path=AdornedElement.(Validation.Errors)[0].ErrorContent}"/>
<AdornedElementPlaceholder x:Name="ErrorAdorner"/>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
当错误信息在视觉上重叠在行上方时会产生非常难看的结果(见下图)
如何在问题字段上方放置验证错误(网格行应增加其高度)?
【问题讨论】:
-
也许将验证文本块放在主 UI 层中,并使用基于
Validation.HasError的 DataTrigger 设置其可见性?我不记得确切的绑定语法,但 this answer 看起来应该可以工作。 -
@Rachel,是的,这正是我最终所做的。请回答问题,我会将您的建议标记为答案。谢谢!
标签: wpf validation errortemplate