silverlight   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Silverlight实用窍门系列:57.Silverlight中的Binding使用(二)-数据验证大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

        本文将简单讲述Silverlight中的Binding数据时的数据验证。     NotifyOnValidationError:是否在出现异常/错误信息的时候激发BindingValidationError事件。     ValidatesOnExceptions:是否将异常信息作为错误信息显示出来。     ValidatesOnDataErrors:结合IDataErrorI

        本文将简单讲述Silverlight中的Binding数据时的数据验证。

    NotifyOnValidationError:是否在出现异常/错误信息的时候激发BindingValidationError事件。

    ValidatesOnExceptions:是否将异常信息作为错误信息显示出来。

    ValidatesOnDataErrors:结合IDataErrorInfo接口以显示错误信息。

    BindingValidationError:这是一个路由事件,当绑定数据的源对象A有错误的时候,抛出异常让此事件接收并且触发,当源对象A没有BindingValidationError事件的时候让其父对象的BindingValidationError事件接收并且触发。

        首先我们写一个用户类,并且在属性中进行简单验证错误时抛出异常如下代码

 

 
 
  1. public class User 
  2. { 
  3.     private String m_UserName; 
  4.  
  5.     public String UserName 
  6.     { 
  7.         get { return m_UserName; } 
  8.         set  
  9.         { 
  10.             if (value.Length < 3) 
  11.             { 
  12.                 throw new Exception("用户名小于3个字符"); 
  13.             } 
  14.             m_UserName = value;  
  15.         } 
  16.     } 
  17.  
  18.     private String m_UserPwd; 
  19.  
  20.     public String UserPwd 
  21.     { 
  22.         get { return m_UserPwd; } 
  23.         set  
  24.         { 
  25.             if (value.Length < 6) 
  26.             { 
  27.                 throw new Exception("密码长度不能小于6"); 
  28.             } 
  29.             m_UserPwd = value; 
  30.         } 
  31.     } 

        然后我们来看Xaml代码演示一个登录时数据绑定的界面:

 

 
 
  1.     <Grid x:Name="LayoutRoot" BACkground="White"  > 
  2.     <Canvas Name="canvasUser" BindingValidationError="canvasuser_BindingValidationError" 
  3.             Loaded="canvasuser_Loaded"
  4.         <sdk:Label Height="28" Name="lbpwd" Width="55" Canvas.Left="16" Canvas.Top="51" 
  5.                    Content="密 码:" /> 
  6.         <sdk:Label Canvas.Left="16" Canvas.Top="15" Height="28" Name="lbusername" 
  7.                    Width="55" Content="用户名:" /> 
  8.         <TextBox x:Name="tbUserName" Width="88" Margin="10" 
  9.                     text="{Binding Path=UserName, Mode=TwoWay, 
  10.                     NotifyOnValidationError=True,ValidatesOnExceptions=True}" 
  11.                  Canvas.Left="91" Canvas.Top="5" /> 
  12.         <TextBox x:Name="tbUserPwd" Width="88" Margin="10" 
  13.                     text="{Binding Path=UserPwd, 
  14.                     NotifyOnValidationError=false,ValidatesOnExceptions=True}" 
  15.                  Canvas.Left="91" Canvas.Top="45" /> 
  16.         <Button Height="30" Width="70" Content="提 交" 
  17.                 Canvas.Left="54" Canvas.Top="93" /> 
  18.     </Canvas> 
  19. </Grid> 

        最后将user类绑定到前台界面原始,并且描述BindingValidationError事件时将TextBox边框变为红色。

 

 
 
  1. public partial class MainPage : UserControl 
  2. { 
  3.     public MainPage() 
  4.     { 
  5.         InitializeComponent(); 
  6.     } 
  7.  
  8.     private void canvasuser_BindingValidationError(object sender, ValidationErrorEventArgs E) 
  9.     { 
  10.  
  11.         textBox tb = e.originalsourcas textBox
  12.         if (e.Action == ValidationErrorEventAction.Added) 
  13.         { 
  14.             tb.borderBrush = new SolidColorBrush(Colors.Red); 
  15.         } 
  16.         else if (e.Action == ValidationErrorEventAction.Removed) 
  17.         { 
  18.             tb.borderBrush = new SolidColorBrush(Colors.WhitE)
  19.         } 
  20.     } 
  21.  
  22.     private void canvasuser_Loaded(object sender, routedEventArgs E) 
  23.     { 
  24.         this.canvasUser.DataContext = new User(); 
  25.     } 

       实现效果如下图,在输入非正确的字符数目的时候会@L_696_25@提示错误,如需源码请点击SLBinding2.rar 下载。

Silverlight实用窍门系列:57.Silverlight中的Binding使用(二)-数据验证

大佬总结

以上是大佬教程为你收集整理的Silverlight实用窍门系列:57.Silverlight中的Binding使用(二)-数据验证全部内容,希望文章能够帮你解决Silverlight实用窍门系列:57.Silverlight中的Binding使用(二)-数据验证所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。