Example #1
0
 public void RefreshTree()
 {
     Nodes.Clear();
     if (ContentObject != null)
     {
         var root = new HolderTreeNode("Root", ContentObject);
         Nodes.Add(root);
         Populate(root);
         ExpandAll();
     }
 }
Example #2
0
 private static void Populate(HolderTreeNode node)
 {
     if (node.Content != null)
     {
         if (node.Content.GetType().Namespace == RestrictionNamespace)
         {
             foreach (var p in node.Content.GetType().GetProperties())
             {
                 object val = p.GetValue(node.Content);
                 if (val != null)
                 {
                     Type t = val.GetType();
                     if ((p.Name == "Items") || ((t.Namespace == RestrictionNamespace) && t.IsClass))
                     {
                         if (t.IsArray)
                         {
                             var i = 0;
                             foreach (var item in (IEnumerable)val)
                             {
                                 var n = new HolderTreeNode(p.Name + "[" + i + "]", item);
                                 node.Nodes.Add(n);
                                 Populate(n);
                                 i++;
                             }
                         }
                         else
                         {
                             var n = new HolderTreeNode(p.Name, val);
                             node.Nodes.Add(n);
                             Populate(n);
                         }
                     }
                 }
             }
         }
     }
 }