【问题标题】:How to get treeview parent and child nodes in dictionary如何在字典中获取treeview父节点和子节点
【发布时间】:2019-02-11 14:35:12
【问题描述】:

请帮助我在字典中获取所有已检查的树视图节点,其中键是检查父节点,值是使用 c# 进行 linq 查询的已检查子节点列表。

【问题讨论】:

    标签: windows forms linq c#-4.0


    【解决方案1】:

    假设每个父级只有一个子级,您可以创建一个扩展方法,如下所示。

    public static class Extensions
    {
            internal static IEnumerable<KeyValuePair<string,IEnumerable<string>>> GetSelectedList(this TreeNodeCollection tr)
            {
                var childCollection = new List<string>();
                foreach (var trNode in tr.OfType<TreeNode>())
                {
                    if (!trNode.Checked) continue;
    
                    childCollection.Clear();
                    childCollection.AddRange(trNode.Nodes.OfType<TreeNode>().Where(x => x.Checked).Select(x=>x.Text));
    
                    yield return new KeyValuePair<string, IEnumerable<string>>(trNode.Text, childCollection);
    
                }
            }
        }
    

    现在你可以像下面这样使用它了。

    var selectedData = treeview.Nodes.GetSelectedList().ToDictionary(x => x.Key, y => y.Value);
    

    【讨论】:

    • 感谢您的回复。我会检查并将其标记为答案。
    猜你喜欢
    • 1970-01-01
    • 2015-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多