首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

【WPF】 数据验证,定制ValidationRule,如果范围是可变的,怎么做

2012-09-17 
【WPF】 数据验证,定制ValidationRule,如果范围是可变的,如何做?RT,C# codepublic class AgeRangeRule : Val

【WPF】 数据验证,定制ValidationRule,如果范围是可变的,如何做?
RT,

C# code
public class AgeRangeRule : ValidationRule    {        private int _min;        private int _max;        public AgeRangeRule()        {        }        public int Min        {            get { return _min; }            set { _min = value; }        }        public int Max        {            get { return _max; }            set { _max = value; }        }        public override ValidationResult Validate(object value, CultureInfo cultureInfo)        {            int age = 0;            try            {                if (((string)value).Length > 0)                    age = Int32.Parse((String)value);            }            catch (Exception e)            {                return new ValidationResult(false, "Illegal characters or " + e.Message);            }            if ((age < Min) || (age > Max))            {                return new ValidationResult(false,                  "Please enter an age in the range: " + Min + " - " + Max + ".");            }            else            {                return new ValidationResult(true, null);            }        }    }

这个是MSDN上的示例,借用一下。
如果AgeRangeRule 的Min和Max 在运行时,受到其它参数的影响而发生变化,就是说参数的验证范围是运行时确定的,而不是创建时静态确定,应该如何做?

[解决办法]
这个没有太好的办法,因为是运行时确定,所以只能是binding的时候把最大值最小值送进去,多项绑定,然后一起验证。
ValidationRule的局限

热点排行