2010-11-18 59 views
2

我對Silverlight驗證有點不知所措。 我終於想出瞭如何將IDataErrorInfoINotifyDataErrorInfo一起使用,以便在我驗證後,控件的紅色邊框開始顯示。鉤子驗證總結到Silverlight 4中我的ViewModel的孩子

但是出於某種奇怪的原因,我無法得到ValidationSummary顯示。

我目前懷疑這與我綁定到當前ViewModel的子級的所有控件有關。

所以用戶控件通過綁定綁定到NewCustomerViewModel而所有的投入要素也必然包含內NewCustomerViewModel一個Customer對象是這樣的:

<TextBox Text="{Binding Path=NewCustomer.Address, Mode=TwoWay, 
     ValidatesOnNotifyDataErrors=True, ValidatesOnDataErrors=True}"/> 

我嘗試設置在ValidationSummary的DataContext屬性綁定到客戶財產,但這並不成功。

任何想法?

回答

3

我想這可能是因爲你必須在ValidationSummary的目標屬性設置爲一個UI元素。這對我來說是什麼。

0

爲什麼要實現IDataErrorInfo INotifyDataErrorInfo接口?雖然你可以實現,但沒有必要。 INotifyDataErrorInfo接口對於Silverlight是唯一的,並且比IDataErrorInfo接口(IMO)更好。因此,您不需要在綁定中將ValidatesOnDataErrors設置爲True(因爲您不使用關聯的接口),而且實際上也不需要將ValidatesOnNotifyDataErrors屬性設置爲True,因爲True是其默認值。

但是,這實際上並沒有回答你的問題:)。我可能需要更多的細節(主要是你的XAML)來給你更多的幫助。展示問題的示範項目的任何機會?

克里斯

+0

當然,我會把樣品放在一起。對於'INotifyDataErrorInfo'。我使用這個接口的主要原因是能夠通知控件,如果用戶點擊保存而不輸入任何輸入,它們是無效的。僅憑IDataErrorInfo是不可能的(至少不適用於我)。我想我可以刪除IDataErrorInfo接口alltogether ..我會放在一起的樣本。感謝您的幫助..我還檢查了books.google.com上關於該主題的書籍,但它並沒有真正的幫助。 – Tigraine 2010-11-19 09:42:28