2011-08-25 51 views
1

我們的商店主要使用「ADO對象」(我指的是DataSet,DataTableDataRow)用於編組數據並在表單和網格中操作數據。我們正在嘗試爲本地ADO對象創建店鋪風格的對應方,以便我們可以將其內部標準強加於其上。創建可以綁定到WinForms控件的自定義DataTable?

實現這一點很簡單,但有一個例外:我希望我們的對象可以綁定到控件。

我知道的IList,IBindingList的,BindingSource的,等等,並已經看過,並與這些嘗試,但我短暫下降,當涉及到製造類沒有硬屬性名綁定。本機ADO對象在默認情況下不是強類型。您具有通過Item屬性訪問的列值(例如row("Age")row.Item("Age"))。我在網上找到的綁定示例處理強類型對象(例如row.Age)。實質上,我們希望創建自定義的ADO對象(不是從本機繼承的),這些對象仍然保留了綁定到控件的能力。

有沒有一個如何實現這個裸骨架的例子?

在網格我希望看到列Name,在那裏這些屬性通過row("Name")row("Age")row("Occupation")露出一排AgeOccupation。這必須是可行的,因爲這正是本地DataTableDataRow提供的。

這是對earlier question的改進。

+0

你的問題是什麼? DataTables是可綁定的 – msarchet

+0

我認爲你在試圖實現「Item(...)」進行綁定時吠叫錯誤的樹。我嘗試製作自己的DataRow類型對象,實現「Item(...)」及其所有重載,但這些在綁定時永遠不會調用。你需要看看另一種使控件相信有一個屬性稱爲「年齡」的方法,只是不確定那會是什麼... – andyhasit

+0

msarchet - 沒有繼承現有的ADO.NET類,你如何實現一個自己的骨頭DataTable/DataRow(你的所有代碼,而不是微軟的)?您的自定義類應該可以綁定到網格和控件。 – Mario

回答

0

看來你需要使用ITypedList接口,它與PropertyDescriptor結合使用。我對這個發現清晰的文章是在這裏:

http://blog.lab49.com/archives/705

我曾試圖這個自己而回,並將根據這篇文章上給它另一種嘗試。

+0

啊......乍一看,這看起來可能適合我的需求。隨着我有時間更充分地閱讀並且嘗試一下,我會更明確地回覆。感謝你的幫助,安迪。 – Mario