2009-09-09 33 views
8

IDataError信息可以在winforms應用程序中正確使用嗎?在過去,我以通常的方式(1)進行綁定,並在特定控件的OnValidating事件中進行驗證。我想將數據驗證移動到域模型,以便我可以輕鬆地交換用戶界面,並使所有邏輯都在同一個位置。winforms中的IDataErrorInfo

我正在調查IDataErrorInfo,但我發現與WPF和應用程序在開發中的所有內容都是嚴格意義上的Winforms應用程序。

我也注意到,在WPF中使用的綁定是在System.Windows.Data和我一直使用的綁定是在System.Windows.Forms(我似乎沒有,當我嘗試將其添加爲資源 - 我使用的是3.5)。從屬性「ValidatesOnDataErrors」旁邊有兩個區別嗎?

(1)通常的方式存在:

myControl.DataBindings.Add(new Binding("Text", this.domainModel, "Property")); 

回答

9

這適用於Windows窗體中的ErrorProvider組件。

有關完整但非常簡單和簡短的教程,請參見this blog post

+0

+1精彩博文。治癒了我目前的困境。非常感謝你。 –

+4

看起來像*夢幻般的博客帖子的鏈接被破壞:使這個鏈接只回答過時。 –

+0

@Bjørn-RogerKringsjå它實際上不是一個鏈接專用的答案。關於'ErrorProvider'的建議使得這個答案沒有鏈接。 – Taryn

1

是,IDataErrorInfo作品的WinForms。例如,DataGridView將自動使用這個每行和每個單元格。但它是針對具體實現的,並不是自動適用於其他綁定。我曾經寫過一些代碼將它關聯到一個錯誤提供者,並通過更改事件來完成這項工作,但我不幸的是,但我似乎記得它並不龐大。