У меня есть TreeView, который пуст при запуске приложения. Узлы добавляются динамически, и для каждого узла я помещаю его тег в словарь.
Теперь, если у меня много длинных ветвей узлов и я удалю корневой узел и его тег из словаря, то, конечно, теги дочерних узлов останутся в словаре.
Итак, я попробовал это:
foreach(TreeNode tn in treeView.SelectedNode.Nodes)
{
dictionary.Remove((string)tn.Tag); // remove all respective keys
}
dictionary.Remove((string)treeView.SelectedNode.Tag); // remove the selected node's key
treeView.Nodes.Remove(treeView.SelectedNode); // remove the selected node itself
Но это удаляет только выбранный узел и первый дочерний узел. Есть ли способ сделать это рекурсивно, от вершины дерева к корню, чтобы каждый ключ был безопасно удален?