【发布时间】:2016-05-07 11:52:09
【问题描述】:
我有一个保存数据的对象模型,该模型绑定到输入表单。该模型使用IDataErrorInfo 和INotifyPropertyChanged 来验证其内容。我有一种将"(6*20+sin(20))" 之类的字符串转换为double 值的方法。用于输入此文本的文本框绑定到Mass.TextValue。但是,当这个值发生变化时,它不会调用如下所示的OnPropertyChanged() 方法,因此该值没有经过验证,我该如何解决这个问题?
private DynamicDouble mass = new DynamicDouble("Mass", 1);
public DynamicDouble Mass
{
get { return mass; }
set { mass = value; OnPropertyChanged("Mass"); }
}
DynamicDouble 类也使用 INotifyPropertyChanged 和 IDataErrorInfo 并调用内部验证,但它是将 string 转换为 double 值的验证,而不是检查该值是否为大于 0(在质量的情况下)。我不能将该范围检查放在 DynamicDouble 类中,因为它不仅仅用于 Mass 属性。
【问题讨论】:
标签: c# wpf validation inotifypropertychanged idataerrorinfo