2009-07-13 77 views

回答

1

我只能從而不是的使用經驗中得知,使用完整的驗證框架,儘管我只是堅持使用WPF本身提供的內容。

在我的項目中,我在實體/數據類上實現了IDataError接口,並實現了Linq-To-Sql觀察的部分「OnValidate」方法,然後實現了實體類的靜態/共享成員,爲實現IDataError.Items和OnValidation方法提供後端邏輯的實驗驗證自制助手。

然後,僅僅是將一個ValidatesOnErrors = True,ValidatesOnExceptions = True添加到XAML中描述的所有綁定的情況。最終的結果是令人鼓舞的 - WPF提供對無效數據的可視反饋的能力很好,並且實現驗證的努力很小。

我建議遵循保持用戶輸入驗證邏輯與屬性設置邏輯分離的趨勢。有時一個財產的有效性取決於另一財產的狀態。將驗證邏輯保持在屬性設置器之外允許您構建應用程序,使最終用戶能夠輸入導致有效狀態的兩個值,而不會導致任何單個屬性設置器在輸入時拒絕這些值。

+0

我有一個問題,我有一個按鈕,我想根據DataContext中的屬性的驗證來設置它的IsEnabled prop,任何想法? – Shimmy 2009-10-29 02:51:39

0

您可能會看到WPF Application Framework (WAF)隨附輕量級驗證框架。

它重新使用.NET Framework的System.ComponentModel.DataAnnotations驗證框架,並將其與WPF數據綁定的IDataErrorInfo支持相結合。