コード例 #1
0
    public void LoadTree(ITreeNodeObject root)
    {
        TreeViewNode node0 = new TreeViewNode(root.Name, "" + root.Identity);

        buildTree(node0, root);
        this.SetContent(node0);
    }
コード例 #2
0
 private void buildTree(TreeViewNode node0, ITreeNodeObject g)
 {
     foreach (ITreeNodeObject cg in g.ChildObjects)
     {
         TreeViewNode node = new TreeViewNode(cg.Name, "" + cg.Identity);
         node0.AddChild(node);
         buildTree(node, cg);
     }
 }
コード例 #3
0
ファイル: Helpers.cs プロジェクト: dnetguru/mobile
        public static void NestedTraverse(List <TreeNode <ITreeNodeObject> > nodeTree, int partIndex, string[] parts,
                                          ITreeNodeObject obj, ITreeNodeObject parent, string delimiter)
        {
            if (parts.Length <= partIndex)
            {
                return;
            }

            var end      = partIndex == parts.Length - 1;
            var partName = parts[partIndex];

            foreach (var n in nodeTree)
            {
                if (n.Node.Name != parts[partIndex])
                {
                    continue;
                }
                if (end && n.Node.Id != obj.Id)
                {
                    // Another node with the same name.
                    nodeTree.Add(new TreeNode <ITreeNodeObject>(obj, partName, parent));
                    return;
                }
                NestedTraverse(n.Children, partIndex + 1, parts, obj, n.Node, delimiter);
                return;
            }

            if (!nodeTree.Any(n => n.Node.Name == partName))
            {
                if (end)
                {
                    nodeTree.Add(new TreeNode <ITreeNodeObject>(obj, partName, parent));
                    return;
                }
                var newPartName = string.Concat(parts[partIndex], delimiter, parts[partIndex + 1]);
                var newParts    = new List <string> {
                    newPartName
                };
                var newPartsStartFrom = partIndex + 2;
                newParts.AddRange(new ArraySegment <string>(parts, newPartsStartFrom, parts.Length - newPartsStartFrom));
                NestedTraverse(nodeTree, 0, newParts.ToArray(), obj, parent, delimiter);
            }
        }
コード例 #4
0
 private void buildTree (TreeViewNode node0, ITreeNodeObject g)
 {
     foreach (ITreeNodeObject cg in g.ChildObjects)
     {
         TreeViewNode node = new TreeViewNode(cg.Name, "" + cg.Identity);
         node0.AddChild(node);
         buildTree(node, cg);
     }
 }
コード例 #5
0
    public void LoadTree (ITreeNodeObject root)
    {
        TreeViewNode node0 = new TreeViewNode(root.Name, "" + root.Identity);

        buildTree(node0, root);
        this.SetContent(node0);
    }