子树视图(WPF)

时间:2016-12-22 00:09:30

标签: c# wpf treeview

我正在尝试从需求列表中创建一个树视图 - 需求列在一个列表中并且类似于" 1.2.1.a_1"和" 1.2.2.b_2"。下面的代码目前是一个很好的树视图,可以创建"要求1"作为一个主要节点,很好" 1.x"作为具有所有要求的子节点很好地列在" 1.x"位。我的问题是我想要更深入 - 为所有" 1.x.x"制作可扩展节点。项目(两个X都是数字) - 所以" 1.2.3.a_1"和" 1.2.3.b_1"在同一父节点或" 1.2.3"。并非所有要求都有第3个非期间字符的数字(即可能存在2.1.a_1)。我对如何实现这一点感到茫然......请帮助。

private void LoadtheNarrativeTreeView() // load up the treeview on the narrative page
{
    Narrative_one_Treeview.Items.Clear();
    for (int i = 1; i <= 12; i++)
    {
        TreeViewItem rootnode = new TreeViewItem();
        rootnode.Header = "Requirement " + i.ToString();

        //TreeNode rootnode = new TreeNode("Requirement " + i.ToString(), 9, 9);
        Narrative_one_Treeview.Items.Add(rootnode);
        for (int s = 1; s <= 12; s++)
        {
            bool testsub = (theROC.FieldVariablesList.Exists(x => x.name.StartsWith(i.ToString() + "." + s.ToString())));
            if (testsub == false)
            { break; }

            List<FieldVariable> clist = new List<FieldVariable>(theROC.FieldVariablesList.Where(x => x.name.StartsWith(i.ToString() + "." + s.ToString())));
            FieldVariable firstsub = new FieldVariable(theROC.FieldVariablesList.First(x => x.name.StartsWith(i.ToString() + "." + s.ToString()))); // 1.1, 1.2
            TreeViewItem subrootnode = new TreeViewItem() { Header = i.ToString() + "." + s.ToString()};
            rootnode.Items.Add(subrootnode);
            foreach (FieldVariable FV in clist.ToList())
            {
                TreeViewItem cnode = new TreeViewItem() { Header = FV.name };

                subrootnode.Items.Add(cnode);
            }
        }
    }
}

0 个答案:

没有答案