silverlight 4 数据验证

当用户提交数据时,我们必须对用户所填写的数据合法性进行验证。而silverlight4的数据验证功能有了比较简单的实现方法,以下是我实现一个示例:一个输入用户年龄的textbox,当用户输入为负数时会提示有错误,并不允许提交。

1.新建一个silverlight 4 项目。

2.mainpage.xaml里输入以下xaml:

添加了一个textbox和一个button控件,button控件为提交测试功能,textbox为数据验证测试功能

<Grid x:Name="LayoutRoot" Background="White">
    <TextBox Height="23" Grid.Row="1" HorizontalAlignment="Left" Margin="114,98,0,0" Name="_txtAge" VerticalAlignment="Top" Width="120"
            Text="{Binding Age,Mode=TwoWay,ValidatesOnDataErrors=True, ValidatesOnExceptions=True}"/>
    <Button Content="提交" Height="23" HorizontalAlignment="Left" Margin="117,166,0,0" Name="button1" VerticalAlignment="Top" Width="75" />
</Grid>

3.新建一个类用作数据类型及定义验证:

//继承于IDataErrorInfo
   public class Person : IDataErrorInfo
   {
       //年龄字段
       public int Age { get; set; }

       #region IDataErrorInfo Members
       //返回来的错误信息(供判断用户数据是否合法使用)
       public string Error
       {
           get
           {
               if (Age < 0)
               {
                   return "err";
               }
               else { return null; }
           }
       }
       //错语提示(用户数据错误时作出的相应提示)
       public string this[string columnName]
       {
           get
           {
               switch (columnName)
               {
                   case "Age":
                       if (Age < 0)
                       {
                           return "年龄必须大于 0";
                       }
                       else
                       {
                           goto default;
                       }
                   default:
                       return null;
               }
           }
       }
       #endregion
   }

4.MainPage.xaml.cs文件:定义数据绑定及提交点击事件:

public partial class MainPage : UserControl
    {
        //初始一个person类作为数据源
        private Person _person;
        public MainPage()
        {
            InitializeComponent();
            //实例化person
            _person = new Person() { Age = 20 };
            //让textbox与person数据源绑定
            _txtAge.DataContext = _person;
            //注册button提交点击事件
            button1.Click +=new RoutedEventHandler(button1_Click);
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            //判断数据验证是否通过
            if ((_txtAge.GetBindingExpression(TextBox.TextProperty).DataItem as Person).Error == null)
            {
                MessageBox.Show("ok");
            }
        }
    }

转载于:https://www.cnblogs.com/jacle169/archive/2012/12/09/2810044.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值