public void PopulateItem(Type type) { var assemblyName = type.Assembly.GetName().Name; TreeListItem attachPoint = RootItem.FindItemByName(assemblyName); if (attachPoint == null) { attachPoint = RootItem.AddItem(assemblyName, false, true, new SystemTypeTreeInfo(assemblyName)); AddHandlerEvents(attachPoint); } var namespaces = type.Namespace.Split('.'); foreach (var ns in namespaces) { var next = attachPoint.FindItemByName(ns); if (next == null) { attachPoint = attachPoint.AddItem(ns, false, false, new SystemTypeTreeInfo(ns)); AddHandlerEvents(attachPoint); } else { attachPoint = next; } } var t = attachPoint.AddItem(type.Name, true, false, new SystemTypeTreeInfo(type)); AddHandlerEvents(t); }