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

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

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

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

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

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

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

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

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

 

  public class User             private string m_Username;              public string Username         {             get { return m_Username; }             set              {                 if (value.Length < 3)                 {                     throw new Exception("用户名小于3个字符");                 }                 m_Username = value;              }         }              private string m_UserPwd;              public string UserPwd         {             get { return m_UserPwd; }             set              {                 if (value.Length < 6)                 {                     throw new Exception("密码长度不能小于6");                 }                 m_UserPwd = value;             }         }       

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

 

      <GrID x:name="LayoutRoot" Background="White"  >         <Canvas name="canvasUser" BindingValIDationError="canvasUser_BindingValIDationError"                 Loaded="canvasUser_Loaded"            <sdk:Label Height="28" name="lbpwd" WIDth="55" Canvas.left="16" Canvas.top="51"                        Content="密 码:" />             <sdk:Label Canvas.left="16" Canvas.top="15" Height="28" name="lbusername"                        WIDth="55" Content="用户名:" />             <TextBox x:name="tbUsername" WIDth="88" margin="10"                         Text="{Binding Path=Username, Mode=TwoWay,                         NotifyOnValIDationError=True,ValIDatesOnExceptions=True}"                      Canvas.left="91" Canvas.top="5" />             <TextBox x:name="tbUserPwd" WIDth="88" margin="10"                         Text="{Binding Path=UserPwd,                         NotifyOnValIDationError=False,ValIDatesOnExceptions=True}"                      Canvas.left="91" Canvas.top="45" />             <button Height="30" WIDth="70" Content="提 交"                     Canvas.left="54" Canvas.top="93" />         </Canvas>     </GrID>   

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

 

  public partial class MainPage : UserControl             public MainPage()         {             InitializeComponent();         }              private voID canvasUser_BindingValIDationError(object sender, ValIDationErrorEventArgs e)         {                  TextBox tb = e.OriginalSource as TextBox;             if (e.Action == ValIDationErrorEventAction.Added)             {                 tb.borderBrush = new SolIDcolorBrush(colors.Red);             }             else if (e.Action == ValIDationErrorEventAction.Removed)             {                 tb.borderBrush = new SolIDcolorBrush(colors.White);             }         }              private voID canvasUser_Loaded(object sender, RoutedEventArgs e)         {             this.canvasUser.DataContext = new User();         }       

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

总结

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

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1069909.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存