在Silverlight中进行基本的数据验证

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_BindingValidationEr ror"/﹥
 ﹤/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页面 的警告窗口给用户提示信息。而当错误被更正时,空间就会还原到默认的白色。

时间: 2024-10-29 17:26:57

在Silverlight中进行基本的数据验证的相关文章

Silverlight实例教程 Datagrid,Dataform数据验证和ValidationSummary

Silverlight 4 Validation验证实例系列 Silverlight实例教程 - Validation数据验证开篇 Silverlight实例教程 - Validation数据验证基础属性和事件 Silverlight实例教程 - Validation数据验证DataAnnotation机制和调试技巧 Silverlight实例教程 - Validation客户端同步数据验证 Silverlight实例教程 - Validation服务器端异步数据验证 Silverlight实例

Win10开发中使用 ValidationAttribute 实现数据验证

WPF 中数据验证的方式多种多样,这里就不说了.但是,在 Windows Phone 8.1 Runtime 中,要实现数据验证,只能靠最基础的手动编写条件判断代码来实现.如果用过 ASP.NET MVC 的那套数据验证的话,再来 WP8.1,那简直就是回到原始社会的感觉. 现在,得益于大一统,mobile 端的 App 也能用上 ValidationAttribute 了!(主要是指 System.ComponentModel.DataAnnotations 这个命名空间下的 Attribut

Silverlight 中使用RIA进行数据访问,同时发起多个异步链接问题。

问题描述 Silverlight中同时发起多个RIA链接进行数据请求,会出现访问时间突然猛增到十秒或十秒以上的情况,这是怎么回事呢?求大神指导 解决方案 解决方案二:数据量太大了吧

在Silverlight应用程序中进行数据验证

概述 众所周知,在ASP.NET应用程序中,我们可以使用验证控件进行数据输入的验证,遗憾的是在 Silverlight中并没有提供任何验证控件,但Silverlight对于双向数据绑定还是提供了一些基本的数据验 证支持,我们可以在set设置器中定义验证规则,并对于不合法数据抛出异常,最后通过捕获验证错误事 件来实现数据的验证. 本文将介绍在Silverlight应用程序中如何进行数据验证. 准备知识 Silverlight中如下两种情况下,将会触发验证错误: 1.在绑定引擎中执行数据转换时抛出异

Silverlight实例教程 - Validation数据验证DataAnnotation机制和调试技巧

Silverlight 4 Validation验证实例系列 Silverlight实例教程 - Validation数据验证开篇 Silverlight实例教程 - Validation数据验证基础属性和事件 Silverlight实例教程 - Validation数据验证DataAnnotation机制和调试技巧 Silverlight实例教程 - Validation客户端同步数据验证 Silverlight实例教程 - Validation服务器端异步数据验证 Silverlight实例

Silverlight实例教程 - Validation用户提交数据验证捕获

Silverlight 4 Validation验证实例系列 Silverlight实例教程 - Validation数据验证开篇 Silverlight实例教程 - Validation数据验证基础属性和事件 Silverlight实例教程 - Validation数据验证DataAnnotation机制和调试技巧 Silverlight实例教程 - Validation客户端同步数据验证 Silverlight实例教程 - Validation服务器端异步数据验证 Silverlight实例

Silverlight实例教程 - Validation数据验证开篇

Silverlight 4 Validation验证实例系列 Silverlight实例教程 - Validation 数据验证开篇 Silverlight实例教程 - Validation数据验证基础属性和事件 Silverlight实例教程 - Validation数据验证DataAnnotation机制和调试技巧 Silverlight实例教程 - Validation客户端同步数据验证 Silverlight实例教程 - Validation 服务器端异步数据验证 Silverlight

Silverlight实例教程 - Validation服务器端异步数据验证

Silverlight 4 Validation验证实例系列 Silverlight实例教程 - Validation数据验证开篇 Silverlight实例教程 - Validation数据验证基础属性和事件 Silverlight实例教程 - Validation数据验证DataAnnotation机制和调试技巧 Silverlight实例教程 - Validation客户端同步数据验证 Silverlight实例教程 - Validation服务器端异步数据验证 Silverlight实例

Silverlight实例教程 - Validation客户端同步数据验证

Silverlight 4 Validation验证实例系列 Silverlight实例教程 - Validation数据验证开篇 Silverlight实例教程 - Validation数据验证基础属性和事件 Silverlight实例教程 - Validation数据验证DataAnnotation机制和调试技巧 Silverlight实例教程 - Validation客户端同步数据验证 Silverlight实例教程 - Validation服务器端异步数据验证 Silverlight实例