首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >验证ErrorTemplate显示故障

验证ErrorTemplate显示故障
EN

Stack Overflow用户
提问于 2016-06-14 20:20:37
回答 1查看 782关注 0票数 0

我有一个简单的WPF网格,有两行和两列。第二列包含TextBox-es,它们绑定到某些视图模型属性。我需要自定义这些TextBoxes验证ErrorTemplates,以在问题框的上方显示验证错误。

以下代码

代码语言:javascript
复制
<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>

当错误信息视觉上重叠在行上时,会产生非常难看的结果(见下图)。

如何将验证错误放在问题字段的上方(网格行应该增加其高度)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-15 15:57:08

也许可以将验证TextBlock放在主UI层中,并使用基于Validation.HasError的DataTrigger设置其Visibility

绑定语法应该如下所示:

代码语言:javascript
复制
<Style x:Key="ErrorTextBlock" TargetType="{x:Type TextBlock}">
    <Setter Property="Visibility" Value="False" />
    <Setter Property="Foreground" Value="Red" />
    <DataTrigger Binding="{Binding ElementName=MyTextBox, Path=Validation.HasError" Value="True">
        <Setter Property="Visibility" Value="True"/>
    </DataTrigger>
</Style>

我相信如果你想要的话,也有一些方法可以使它变得通用:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37821398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档