private TreeGroupDetails GetOrMake(string groupPath) { TreeGroupDetails node = null; TreeGroupDetails tdg = null; if (_groups.TryGetValue(groupPath, out tdg)) { return(tdg); } string[] parts = groupPath.Split(_divider); if (parts.Length == 1) { return(CreateRootNode(parts[0])); } string name = parts[parts.Length - 1]; var allParts = parts.ToList(); string parent = string.Empty; for (int i = 0; i < allParts.Count - 1; i++) { if (!string.IsNullOrWhiteSpace(parent)) { parent += _divider; } parent += allParts[i]; } node = CreateNode(parent, name); return(node); }
private TreeGroupDetails CreateNode(string parent, string groupName) { TreeGroupDetails tdg = null; if (!_groups.TryGetValue(parent, out tdg)) { return(null); } TreeViewItem groupNode = new TreeViewItem { Header = groupName }; tdg.GroupNode.Items.Add(groupNode); TreeGroupDetails groupDetails = new TreeGroupDetails { GroupName = groupName, GroupPath = parent + _divider + groupName, GroupNode = groupNode }; _groups.Add(groupDetails.GroupPath, groupDetails); return(groupDetails); }
private TreeGroupDetails CreateRootNode(string groupName) { TreeViewItem groupNode = new TreeViewItem { Header = groupName }; _rootNode.Items.Add(groupNode); TreeGroupDetails groupDetails = new TreeGroupDetails { GroupName = groupName, GroupPath = groupName, GroupNode = groupNode }; _groups.Add(groupDetails.GroupPath, groupDetails); return(groupDetails); }