2013-10-23 51 views
0

在C#中我有DataGridView和我的自定義類「東西」具有覆蓋toString()方法。 我想要做的就是使用Thing類型的對象填充DataGridView,因此Thing對象可以在DataGridView上自行顯示它們。DataGridView與每個單元格內的自定義對象

public class Thing 
{ 
    public string text {get;set;} 
    public int id {get;set;} 

    public Thing(string text, id) 
    { 
    this.text = text; 
    this.id = id; 
    } 

    public override string ToString() 
    { 
    return text; 
    } 
} 

,我試圖來填充的DataGridView例如:

DataTable dt = new DataTable(); 
int Xnum = 100; 
int Ynum = 100; 

for (int i = 0; i < Xnum; i++) 
    dt.Columns.Add(i.ToString(), typeof(Thing));       

for (int i = 0; i < Ynum; i++) 
    dt.Rows.Add(); 

,並在一些環路我儘量填寫DT創建單元的值,則

//loop 
(dt.Rows[x][y] as Thing).text = "some text from loop"; 
(dt.Rows[x][y] as Thing).id = "some id from loop"; 
//end loop 

最後:

DataGridView1.DataSource = dt; 

網格正確填充單元格和行,但它們是空的。我希望他們從Thing.text字段中可見文本。

我需要用自定義對象來做,因爲我希望將來有一些東西可用。

那麼如何做類,讓DataGridView可以以某種方式使用它來獲取文本值以顯示在每個單元上?

回答

0

這工作:

for (int x = 0; x < Xnum; ++x) { 
    for (int y = 0; y < Ynum; ++y) { 
    dt.Rows[y][x] = new Thing("Cell " + x.ToString() + ", " + y.ToString(), -1); 
    } 
} 

確保您與 「事」 填充表。

相關問題