引言
数据验证在任何用户界面程序中都是不可缺少的一部分.在WPF中,数据验证更是和绑定紧紧联系在一起,下面简单介绍MVVM模式下常用的几种验证方式. 错误信息显示 在介绍数据验证之前,有必要介绍一下如何显示错误信息.方式很简单,定义一个样式触发器。微软为WPF提供了ValidationRule类,用于数据绑定的数据验证。
数据验证 类ValidationRule
- 程序集:PresentationFramework.dll
- 派生
- System.Windows.Controls.DataErrorValidationRule System.Windows.Controls.ExceptionValidationRule System.Windows.Controls.NotifyDataErrorValidationRule
提供创建自定义规则的一个方式,旨在检查用户输入的有效性。
微软官方:如何:实现绑定验证
详细应用
WPF数据绑定验证={bing}表达式设置+控件设置
1、{bing}表达式设置
{Bing }表达式提供了对数据验证的支持,以下是bing属性:
ValidatesOnDataErrors属性:默认false,设置为true开启数据验证
ValidationRules属性:验证规则,该属性是Collection<ValidationRule>集合。自定义验证规则需要继承ValidationRule类然后重写
Validate()方法。
Validation.HasError属性:默认false,判断是否有错误信息、再控件触发器中用于触发显示错误信息。
2、控件设置
设置数据错误信息的显示、显示样式、触发 。以下用给TextBox 控件添加数据验证为例加以说明。
Validation.ErrorTemplate附加属性:是ControlTemplate类型,给控件添加附加模板属性,用于显示 证信息样式。例如:给textbox添加 显示验证信息的模板
<TextBox Validation.ErrorTemplate="{StaticResource validationTemplate}"
错误信息模板
<ControlTemplate x:Key="validationTemplate"> <DockPanel> <TextBlock Foreground="Red" FontSize="20">!</TextBlock> <AdornedElementPlaceholder/> </DockPanel> </ControlTemplate>
textbox触发器设置,触发显示错误信息,显示错误消息的 ToolTip 使用名为 textBoxInError
的样式创建。 如果 HasError 的值为 true
,则触发器将当前 TextBox 的工具提示设置为其首个验证错误。 将 RelativeSource 设置为 Self,并引用当前元素。
<Style x:Key="textBoxInError" TargetType="{x:Type TextBox}"> <Style.Triggers> <Trigger Property="Validation.HasError" Value="true"> <Setter Property="ToolTip" Value="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=(Validation.Errors)/ErrorContent}"/>
</Trigger> </Style.Triggers> </Style>
效果
重新定义控件的
标签:控件,验证,绑定,错误信息,WPF,数据,Login From: https://www.cnblogs.com/cdaniu/p/16747509.html