2009-09-20 66 views
0

在我的項目,我想TE創建自己的DataGrid,但我不從至極對象知道我要創建TE的列。創建集合<T>

所以我想一個屬性:

private List<T> DataSource 

誰的人有任何想法如何解決這一問題?

+2

...修復什麼?你能更清楚地問你的問題嗎? – JoshJordan 2009-09-20 17:11:15

回答

2

您沒有提供非常多的代碼或解釋,但我猜你在該行獲得有關泛型參數編譯錯誤。你需要讓你的類聲明一般也接受一個參數T.像這樣:

public class MyDataGridWrapper<T> : DataGrid 
{ 

    private List<T> DataSource; 
    ... 
    ... 

} 

你真的沒有規定什麼是錯的,所以我只是在兩個你是錯誤的猜測得到和實際錯誤。

+0

我想設置數據源,以便我可以爲我的網格創建列 示例: 列表 items = new列表(); 數據源=項目; 我如何知道我的List <>中的對象是虛擬的?所以我可以爲每個屬性創建列(用反射) – Jordy 2009-09-20 17:29:19

+0

你知道這是一個虛擬的,因爲它是一個列表()。你不能只是有一個列表沒有從任何地方得到T。 – womp 2009-09-20 17:31:39

+0

事實是,我也將創造與反思的對象,所以我西港島線不知道它是什麼類型時,我寫我的代碼.. 所以我想做的事 - >數據源=列出(); ,然後無需自動生成我的列。 1)第一個問題是,我怎樣才能使我的數據源爲列表 2)第二個問題:即使當我的列表中沒有任何項目時,我如何獲得列表中的我的對象的類型(空列表,數= 0).. – Jordy 2009-09-20 17:58:12

-1

爲什麼不把它作爲「對象」,並投它?

+0

如果你走這條路,你就失去類型檢查。 – blparker 2009-09-20 17:21:51

+0

我試過是作爲對象,但不知道什麼時候我想讓我的列,我怎麼能得到在列表中的類型? 例如: 列表數據源=新列表() DataSource.Add(新的虛擬概率(){名稱= 「測試」,值= 1}; 我怎樣才能知道在我的函數createColumns這些對象在我的列表是Dummy類的對象嗎?當列表爲空時(.Count = 0)該怎麼辦? – Jordy 2009-09-20 17:27:05

+0

類型安全性:編譯器會爲您找到類型不匹配的情況,而且您不必輸入((SomeClassName )...)施放。 – 2009-09-20 17:30:13

0

查找到IBindingList<T>.此接口的目的是爲將在綁定使用名單。你的屬性應該是這種類型,然後,任何實現這種類型的東西都可以用來綁定到你的網格。