3
我有一个UserControl
包含其他控件和TextBox
。它有一个Value
属性,它绑定到TextBox
文本并且ValidatesOnDataErrors
设置为True。在WPF中的不同控件上显示验证错误模板
当Value
属性绑定中发生验证错误时,错误模板(标准红色边框)显示在整个UserControl
的周围。
有没有办法仅在TextBox
附近展示? 我想能够使用任何错误模板,所以简单地将文本框放在边框上,并绑定它的颜色或Validation.HasError
不是一个选项。
这里是我的代码:
<DataTemplate x:Key="TextFieldDataTemplate">
<c:TextField DisplayName="{Binding Name}" Value="{Binding Value, Mode=TwoWay, ValidatesOnDataErrors=True}"/>
</DataTemplate>
<controls:FieldBase x:Name="root">
<DockPanel DataContext="{Binding ElementName=root}">
<TextBlock Text="{Binding DisplayName}"/>
<TextBox x:Name="txtBox"
Text="{Binding Value, Mode=TwoWay, ValidatesOnDataErrors=True}"
IsReadOnly="{Binding IsReadOnly}"/>
</DockPanel>
用户控件(FieldBase)比绑定到模型视图执行验证。