首页 > 其他 > 详细

WPF 绑定的校验

时间:2014-03-12 03:18:50      阅读:510      评论:0      收藏:0      [点我收藏+]

为进行校验,必须准备一个RangeValidationRule类,该类继承自ValidationRule

该类实现如下:

bubuko.com,布布扣
class RangeValidationRule : ValidationRule
    {
        public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
        {
            double d;
            if (double.TryParse(value.ToString(), out d))
            {
                if (d >= 0 && d <= 100)
                {
                    return new ValidationResult(true, null);
                }
            }
            return new ValidationResult(false, "Validation Failed");
        }
    }
bubuko.com,布布扣

界面上仍2个控件,相应的XAML

1
2
3
4
<Grid>
        <TextBox Height="23" HorizontalAlignment="Left" Margin="84,63,0,0" Name="textBox1" VerticalAlignment="Top" Width="336" IsEnabled="True"/>
        <Slider Name="slider1" Height="23" HorizontalAlignment="Left" Margin="84,125,0,0" VerticalAlignment="Top" Width="336" Maximum="110"  Minimum="-1"/>
    </Grid>

  

1.基本验证

bubuko.com,布布扣
  //1.基本验证
            binding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
            binding.ValidationRules.Add(new RangeValidationRule());
            this.textBox1.SetBinding(TextBox.TextProperty, binding);
bubuko.com,布布扣

2.数据源验证

bubuko.com,布布扣
//2.验证source
            binding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
            binding.ValidationRules.Add(new RangeValidationRule() 
            {
                ValidatesOnTargetUpdated = true
            });
            binding.NotifyOnValidationError = true;
            this.textBox1.SetBinding(TextBox.TextProperty, binding);
bubuko.com,布布扣

3.添加路由事件

bubuko.com,布布扣
  this.textBox1.AddHandler(Validation.ErrorEvent, new RoutedEventHandler((sender, e) =>
                {
                    if (Validation.GetErrors(this.textBox1).Count > 0)
                    {
                        this.textBox1.ToolTip = Validation.GetErrors(this.textBox1)[0].ErrorContent.ToString();
                    }
                }));
bubuko.com,布布扣

WPF 绑定的校验,布布扣,bubuko.com

WPF 绑定的校验

原文:http://www.cnblogs.com/kakaliush/p/3594231.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!