2010-06-17 101 views
1

我正在開發一個WPF GUI框架,並且遇到了使用雙向綁定和大量不需要的事件(主要在Flex中)的糟糕體驗,因此我沿着綁定的路線走了(字符串代表對象路徑)在我的控件中。當請求顯示視圖時,控制器加載視圖,並從DB獲取所需的實體(使用綁定),並使用正確的值填充控件。這具有許多優點,例如延遲加載,默認撤消行爲等。當需要保存視圖中的數據時,視圖會再次傳回給控制器,而控制器基本上不會保留,即如果值存在,則從視圖重新填充實體已改變。WPF控件驗證

但是,當我嘗試驗證組件時遇到了問題。每個實體的屬性都有屬性,這些屬性定義了控制器可以輕鬆訪問的驗證規則,並驗證視圖中的數據。數據的實際驗證很好。問題出現在我想要GUI控件顯示錯誤驗證信息時。它嘗試改變我遇到的錯誤風格,一旦使用後風格無法更改。在c#中的一種方式是關閉正常的WPF驗證機制,並用控制器發現的validaiton錯誤來證明它?

在此先感謝

喬恩

回答

2

兩件事情:

1)信任的數據綁定WPF。 WPF的數據綁定非常強大,非常有用 - 沒有理由讓其他框架的「糟糕體驗」阻止您使用DataBinding。它將大大簡化您的代碼。

2)數據驗證的最佳選擇是使用WPF的內置數據驗證功能。如果你使你的數據上下文實現(數據保持綁定)實現IDataErrorInfo,你幾乎可以免費獲得適當的驗證樣式(並且可以完全自定義)。這是在WPF中處理數據驗證的正確方法。

+0

非常感謝這個,但有沒有一種方法來編程實現驗證或更改樣式? – Jon 2010-06-17 19:20:43