0

我在 ac# windows 窗体应用程序中使用 betfair API,

当我调用 getAllMarket() 方法时,我得到一个长字符串,其中包括一个没有像这样的刺痛路径:

~\Cricket\Group C\England v South Africa\Test Series~  
~\Cricket\Group C\English Domestic\Clydesdale Bank 40 2012\Group Winners~ 
~\Cricket\Group C\England v South Africa\Test Series\England v South Africa (2nd Test)~

所以我想根据这样的路径填充树视图控件:

step 1>Check if the path already exixts, then select the last node on the path, 
step 2>else create the whole path and select the last node,
step 3> add a custom child node to he selected last node of the path,

我之前从未使用过树视图,但现在已经学习了基础知识,并且自定义子节点也已经创建,所以一个详细的答案会非常有帮助,谢谢

4

1 回答 1

0

它是用于 wpf 的,所以在 Windows 窗体中,代码应该是

        List<string> mylist = market.Trim('~').Split(new string[] { @"\" }, StringSplitOptions.RemoveEmptyEntries).ToList();
        if (mylist.Count > 0)
        {
            TreeNode root = new TreeNode(mylist[0]);
            treeView1.Nodes.Add(root);
            mylist.RemoveAt(0);

            TreeNode temp = root;
            foreach (string s in mylist)
            {
                temp = AddNode(temp, s);
            }

            treeView1.SelectedNode = root;
        }

第一个循环意味着如果节点存在则返回它,否则创建它并返回它

           private TreeNode AddNode(TreeNode parent, string header)
    {
        foreach (TreeNode subitem in parent.Nodes)
            if (subitem.Text.ToString() == header)
                return subitem;
        TreeNode tvi = new TreeNode(header);
        parent.Nodes.Add(tvi);
        return tvi;
    }
于 2012-08-01T07:43:07.070 回答