private void AddChildren(Thing t, TreeViewItem tvi, int depth) { foreach (Thing child in t.Children) { string header = child.Label + ":" + child.useCount; if (child.References.Count > 0) { header += " ("; ModuleUKSN parent = (ModuleUKSN)base.ParentModule; Thing best = parent.FindBestReference(child); foreach (Link L in child.References) { if (L.T == best) { header += "*"; } if (L.weight < 0) { header += "-"; } header += L.T.Label + ", "; } header = header.Substring(0, header.Length - 2); header += ")"; } if (child.V != null) { if (child.V is int i) { header += " : " + i.ToString("X"); } else { header += " : " + child.V.ToString(); } } TreeViewItem tviChild = new TreeViewItem { Header = header }; if (expandedItems.Contains(LeftOfColon(header))) { tviChild.IsExpanded = true; } tvi.Items.Add(tviChild); tviChild.MouseRightButtonDown += Tvi_MouseRightButtonDown; if (depth < maxDepth) { AddChildren(child, tviChild, depth + 1); AddReferences(child, tviChild); AddReferencedBy(child, tviChild); } } }