zoukankan      html  css  js  c++  java
  • WPF 绑定的校验

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

    该类实现如下:

    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");
            }
        }

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

    <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.基本验证

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

    2.数据源验证

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

    3.添加路由事件

      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();
                        }
                    }));
  • 相关阅读:
    Python教程(2.2)——数据类型与变量
    Python教程(2.1)——控制台输入
    Python教程(1.2)——Python交互模式
    (译)割点
    Python教程(1.1)——配置Python环境
    Python教程(0)——介绍
    [HDU1020] Encoding
    [HDU1004] Let the balloon rise
    扩展中国剩余定理 exCRT 学习笔记
    51nod 1943 联通期望 题解【枚举】【二进制】【概率期望】【DP】
  • 原文地址:https://www.cnblogs.com/kakaliush/p/3594231.html
Copyright © 2011-2022 走看看