2011-03-08 74 views
0

我有一個dataGridView與3列(城市,subcity,citycode)和每個數據!我想的dataGridView列的值(城市)中的一個來填補樹的父母,並通過「subCity」列的值 填補樹的孩子請 感謝如何通過datagridview的數據填充樹視圖

回答

1

幫助我,我認爲它的未知其subcities屬於哪個城市。

如果您沒有任何其他數據模型,我將遍歷數據網格的所有行並在Dictionary>中收集數據。關鍵將是城市和價值的一個子集合。現在你可以注意到這個dicionary,併爲父節點和值的每個元素添加一個foreach鍵爲一個子節點。

這是一個直接的方法,我相信你也可以用LINQ來做到這一點。

編輯:

treeView1.Nodes.Clear(); 

Dictionary<string, List<string>> dict = new Dictionary<string, List<string>>(); 

foreach (DataGridViewRow row in dataGridView1.Rows) 
{ 
    string city = (string)row.Cells[0].Value; 
    string subCity = (string)row.Cells[1].Value; 

    if (city == null || subCity == null) 
     continue; 

    if (dict.ContainsKey(city)) 
    { 
     dict[city].Add(subCity); 
    } 
    else 
    { 
     dict.Add(city, new List<string>()); 
     dict[city].Add(subCity); 
    } 
} 

foreach (var kvp in dict) 
{ 
    TreeNode parent = new TreeNode(kvp.Key); 

    foreach (string subCity in kvp.Value) 
    { 
     parent.Nodes.Add(subCity); 
    } 

    treeView1.Nodes.Add(parent); 
} 
+0

感謝ü可以幫我一個示例代碼? C#語法將幫助我更多:) – san 2011-03-08 08:01:38

+0

var類型未定義在C#中可以設置另一個變量類型而不是它? – san 2011-03-08 08:42:59

+0

var kvp == KeyValuePair > 請注意,這只是一個示例代碼,如果您在生產代碼中需要它,那麼您最好重寫樣本。 – MBulli 2011-03-08 08:53:22