在Silverlight中进行基本的数据验证
创始人
2024-03-22 12:11:27
0

Silverlight 2支持基本的数据验证功能。在Silverlight 2中,当我们把数据绑定到某个UI控件的时候,该数据所具有的有效性规则也自动被绑定到了该UI控件上。

比如某个数据字段被设置为整数型,当我们用非整数型数据对该字段进行更新的时候就会发生错误。我们就可以利用这个规则在UI中对输入数据进行验证。要做到这点,我们只要设置两个XAML属性,并在所定义的事件中实现我们所期望的UI行为就可以了。

比如下面的XAML代码定义了一组控件,用户通过TextBox对数据进行更新:

﹤StackPanel x:Name="dataForm"﹥
  ﹤TextBlock Text="FirstName" Width="125" FontSize="12" /﹥
  ﹤TextBox x:Name="FirstNameTextBox" IsReadOnly="False" Width="150" 
Text="{Binding FirstName, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}"
BindingValidationError="FirstNameTextBox_BindingValidationError"/﹥ ﹤/StackPanel﹥

当NotifyOnValidationError和ValidatesOnExceptions这两个属性都设置为true的时候,Silverlight就会在对输入数据验证所绑定的规则发生错误的时候触发BindingValidationError事件,这样我们就会在验证发生错误时得到通知。

接下来我们要做的就是实现事件触发时的行为,也就是我们期望的UI行为。如:

private void FirstNameTextBox_BindingValidationError(object sender, ValidationErrorEventArgs e)
{
    if (e.Action == ValidationErrorEventAction.Added)
    {
        ((Control)e.OriginalSource).Background = new SolidColorBrush(Colors.Red);
        this.Dispatcher.BeginInvoke(()=>HtmlPage.Window.Alert("The input format is invalid"));
    }
    if (e.Action == ValidationErrorEventAction.Removed)
    {
        ((Control)e.OriginalSource).Background = new SolidColorBrush(Colors.White);
    }
} 

在上面这段代码中,当错误发生时,控件(这里是TextBox)的背景色就会变成红色,并利用HTML页面的警告窗口给用户提示信息。而当错误被更正时,空间就会还原到默认的白色。

【编辑推荐】

  1. 专题:一步一步学Silverlight 2
  2. Silverlight 3功能前瞻
  3. 详解Silverlight中的Downloader对象

相关内容

热门资讯

施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...
VMware vFabric (2012年5月17日中国北京)——全球虚拟化和云基础架构厂商VMware公司(NYSE:VMW)今...
由浅入深学习CentOS入门 在系统的学习CentOS入门的知识中,我们掌握了一些基本的设置。今天我们来讲一下CentOS入门中的...
虚拟现实 人工智能和人体未来会... 探讨像虚拟现实和人工智能这样的技术将会跟人体发生怎样的融合。未来将会出现模糊虚拟现实和现实本身界限的...