Silverlight 2数据验证功能实现方法介绍

开发 开发工具
Silverlight 2数据验证是一项比较新的功能。我们可以通过一些相关代码示例,来体验其带来的功能体验。并在第一时间内掌握这一知识。

Silverlight从出现至今,已经推出了许多版本。每一个新版本的出现都会为程序员们带来一些新的功能体验。比如,Silverlight 2数据验证就是一项比较新的支持功能。在Silverlight 2中,当我们把数据绑定到某个UI控件的时候,该数据所具有的有效性规则也自动被绑定到了该UI控件上。#t#

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

比如如下的XAML代码定义了一组控件,用户通过TextBox对数据进行更新体验Silverlight 2数据验证的功能:

 

  1. view plaincopy to clipboardprint?  
  2. < StackPanel x:Name="dataForm">   
  3. < TextBlock Text="FirstName" Width="125" 
    FontSize="12" />   
  4. < TextBox x:Name="FirstNameTextBox" 
    IsReadOnly="False" Width="150" 
    Text="{Binding FirstName, Mode=TwoWay, 
    NotifyOnValidationError=true, 
    ValidatesOnExceptions=true}"
     
    BindingValidationError="FirstNameTextBox_
    BindingValidationError"
    />   
  5. < /StackPanel>   
  6. < StackPanel x:Name="dataForm"> 
  7. < TextBlock Text="FirstName" Width="125" 
    FontSize="12" /> 
  8. < TextBox x:Name="FirstNameTextBox" 
    IsReadOnly="False" Width="150" 
    Text="{Binding FirstName, Mode=TwoWay, 
    NotifyOnValidationError=true, Validates
    OnExceptions=true}"
     BindingValidationError=
    "FirstNameTextBox_BindingValidationError"/> 
  9. < /StackPanel>  

 

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

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

 

  1. view plaincopy to clipboardprint?  
  2. private void FirstNameTextBox_Binding
    ValidationError(object sender, 
    ValidationErrorEventArgs e)   
  3. {   
  4. if (e.Action == ValidationErrorEventAction.Added)   
  5. {   
  6. ((Control)e.OriginalSource).Background = 
    new SolidColorBrush(Colors.Red);   
  7. this.Dispatcher.BeginInvoke(()=>HtmlPage.
    Window.Alert("The input format is invalid"));   
  8. }   
  9. if (e.Action == ValidationErrorEventAction.Removed)   
  10. {   
  11. ((Control)e.OriginalSource).Background = 
    new SolidColorBrush(Colors.White);   
  12. }   
  13. }   
  14. private void FirstNameTextBox_BindingValidation
    Error(object sender, ValidationErrorEventArgs e)  
  15. {  
  16. if (e.Action == ValidationErrorEventAction.Added)  
  17. {  
  18. ((Control)e.OriginalSource).Background = 
    new SolidColorBrush(Colors.Red);  
  19. this.Dispatcher.BeginInvoke(()=>HtmlPage.
    Window.Alert("The input format is invalid"));  
  20. }  
  21. if (e.Action == ValidationErrorEventAction.Removed)  
  22. {  
  23. ((Control)e.OriginalSource).Background = 
    new SolidColorBrush(Colors.White);  
  24. }  
  25. }  

 

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

责任编辑:曹凯 来源: CSDN
相关推荐

2009-12-30 16:19:49

Silverlight

2009-12-30 17:44:22

Silverlight

2009-12-30 15:08:04

Silverlight

2009-12-31 16:18:44

Silverlight

2009-12-30 14:44:04

Silverlight

2009-12-29 18:02:26

SilverLight

2009-12-30 15:42:08

Silverlight

2010-01-04 17:42:50

SilverLight

2009-12-31 15:05:00

Silverlight

2009-12-30 13:59:58

Silverlight

2009-12-30 14:28:06

Silverlight

2009-12-31 14:12:40

Silverlight

2009-12-31 10:51:55

Silverlight

2009-12-30 16:43:47

Silverlight

2009-12-30 16:10:10

Silverlight

2009-12-29 18:34:21

Silverlight

2010-01-04 16:50:04

Silverlight

2009-12-29 18:09:00

Silverlight

2009-12-30 15:53:28

Silverlight

2010-01-04 17:29:00

Silverlight
点赞
收藏

51CTO技术栈公众号