我有一个dataGridView,其中包含3列(城市,小区,城市代码)和每个列的数据!我希望通过dataGridView列的值(城市)之一填充树的父级,并通过“subCity”列的值填充树的子级 请帮我 谢谢
答案 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);
}