如何通过datagridview的数据填充树视图

时间:2011-03-08 07:31:15

标签: c#

我有一个dataGridView,其中包含3列(城市,小区,城市代码)和每个列的数据!我希望通过dataGridView列的值(城市)之一填充树的父级,并通过“subCity”列的值填充树的子级 请帮我  谢谢

1 个答案:

答案 0 :(得分:1)

我假设其未知的哪个子类属于哪个城市。

如果您没有任何其他数据模型,我会遍历数据网格的所有行并在字典>中收集数据。关键是城市和价值集合的子集。现在你可以使用这个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);
}