2011-03-11 48 views
1

我們有一個SL 4應用程序,利用MVVM架構和對象與UI控件之間非常乾淨的數據綁定。我們創建了一個自定義ValidationAttribute,用於裝飾我們的域類並提供基於數據存儲的字段級驗證。如果我們利用這些自定義的驗證屬性和使用手動Validator類這樣的驗證我們的類:Silverlight 4 TextBox not validating

 bool _isValid = Validator.TryValidateObject(this.DataContext, new ValidationContext(this.DataContext,null,null), results,true); 

然後將自定義驗證屬性被利用,一切工作正常。

我們的問題是,當簡單地將數據輸入到綁定到用這些驗證屬性之一裝飾的字段的文本框中時,我們看不到立即驗證反饋(通過工具框的默認紅色邊框和工具提示樣式)。

的在失去重心的控制沒有驗證樣品XAML代碼段爲:

 <TextBox Text="{Binding AssetID,Mode=TwoWay, NotifyOnValidationError=True, ValidatesOnDataErrors=true}"></TextBox> 

上我們忽略什麼,或者我們能做些什麼,以迫使SL在失去重心,以驗證文本框,而不是等待任何建議直到頁面級保存完成(在這一點上,我們只驗證Validator類)?

回答