在Textblock而不是Tooltip中显示IDataErrorInfo错误

时间:2012-05-01 17:55:15

标签: c# wpf idataerrorinfo validation

我见过很多关于如何在文本框的工具提示中显示错误的示例。有人能举例说明如何在单独的TextBlock中而不是在TextBox的工具提示中显示错误吗?

如果文本框和文本块位于不同的视图中,我特别感兴趣知道如何执行此操作。带有textblock的视图可以访问在其上实现IDataErrorInfo的数据。

2 个答案:

答案 0 :(得分:0)

你写了

  

带有textblock的视图可以访问具有的数据   虽然在它上面实现了IDataErrorInfo。

所以一种方法是将文本块绑定到与文本框相同的属性。然后为你的文本块创建一个验证模板,覆盖整个文本块。

编辑:也许是这样的?

<ControlTemplate x:Key="ValidationTemplate">
    <Grid>
        <AdornedElementPlaceholder Name="MyAdornedElement" />  
        <TextBlock Text="{Binding ElementName=MyAdornedElement,Path=AdornedElement.(Validation.Errors).CurrentItem.ErrorContent}" />
    </Grid>
</ControlTemplate>

你必须将它添加到文本块样式

答案 1 :(得分:0)

所以我最终做的是添加一个我用Error文本设置的属性。任何时候更新我的Name属性,如果它有错误,我更新NameError属性。然后我能够绑定到该属性。它似乎有点脏,但它为我做了诀窍。