首页 > 其他分享 >【WPF】数据绑定与验证,如Login窗口中的用户名和密码验证提示

【WPF】数据绑定与验证,如Login窗口中的用户名和密码验证提示

时间:2022-10-01 18:11:48浏览次数:78  
标签:控件 验证 绑定 错误信息 WPF 数据 Login

引言

数据验证在任何用户界面程序中都是不可缺少的一部分.在WPF中,数据验证更是和绑定紧紧联系在一起,下面简单介绍MVVM模式下常用的几种验证方式. 错误信息显示 在介绍数据验证之前,有必要介绍一下如何显示错误信息.方式很简单,定义一个样式触发器。微软为WPF提供了ValidationRule类,用于数据绑定的数据验证。

数据验证 类ValidationRule 

命名空间:System.Windows.Controls
程序集: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

相关文章