我有一個模型,用於保存綁定到輸入表單的數據。此型號使用IDataErrorInfo
和INotifyPropertyChanged
驗證其內容。我有一種方法將"(6*20+sin(20))"
這樣的字符串轉換爲double
的值。輸入此文本的文本框綁定到Mass.TextValue
。但是,如果此值發生變化,它不會調用OnPropertyChanged()
方法(如下所示),因此該值未經驗證,我如何解決此問題?使用IDataErrorInfo和INotifyPropertyChanged驗證自定義數據類型
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
屬性。