public void SetEditable(EditableData[] DataSet) { Tree.Nodes.Clear(); foreach (EditableData ED in DataSet) { Type EDType = ED.GetType(); DesignerCategoryAttribute Cat = EDType.GetCustomAttribute <DesignerCategoryAttribute>(); DisplayNameAttribute DispName = EDType.GetCustomAttribute <DisplayNameAttribute>() ?? new DisplayNameAttribute(EDType.Name); TreeNode CatNode = FindOrCreateCategory(Cat.Category); CatNode.Tag = null; TreeNode EditNode = CatNode.Nodes.Add(DispName.DisplayName); EditNode.Tag = ED; } Tree.ExpandAll(); }