大佬教程收集整理的这篇文章主要介绍了Silverlight实用窍门系列:57.Silverlight中的Binding使用(二)-数据验证,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
本文将简单讲述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;
- }
- }
- }
- <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();
- }
- }
实现效果如下图,在输入非正确的字符数目的时候会@L_696_25@提示错误,如需源码请点击SLBinding2.rar 下载。
以上是大佬教程为你收集整理的Silverlight实用窍门系列:57.Silverlight中的Binding使用(二)-数据验证全部内容,希望文章能够帮你解决Silverlight实用窍门系列:57.Silverlight中的Binding使用(二)-数据验证所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。