У меня есть несколько узлов в древовидном, что пользователь может перетаскивать, чтобы создать дочерние узлы и т.д.C# Получение списка каталогов с помощью TreeView узла Информации
Я использую пару методов для получения списка родительского узла:
private static IList<Node> BuildParentNodeList(AdvTree treeView)
{
IList<Node> nodesWithChildren = new List<Node>();
foreach (Node node in treeView.Nodes)
AddParentNodes(nodesWithChildren, node);
return nodesWithChildren;
}
private static void AddParentNodes(IList<Node> nodesWithChildren, Node parentNode)
{
if (parentNode.Nodes.Count > 0)
{
nodesWithChildren.Add(parentNode);
foreach (Node node in parentNode.Nodes)
AddParentNodes(nodesWithChildren, node);
}
}
Затем на родительском узле я использую метод расширения, чтобы получить все дочерние узлы:
public static IEnumerable<Node> DescendantNodes(this Node input)
{
foreach (Node node in input.Nodes)
{
yield return node;
foreach (var subnode in node.DescendantNodes())
yield return subnode;
}
}
Вот типичное расположение моих узлов:
Computer
Drive F
Movies
Music
Enrique
Michael Jackson
Videos
Мне нужно строковое представление пути каждого узла, имеющего дочерние узлы. например:
Computer\DriveF
Computer\DriveF\Movies\
Computer\DriveF\Music\
Computer\DriveF\Music\Enrique
Computer\DriveF\Music\Michael Jackson
Computer\DriveF\Music\Michael Jackson\Videos
У меня возникли проблемы с получением это точное представление с использованием указанных выше способов. Любая помощь будет высоко ценится. Благодарю.
Использование каналов поддержки поставщика, чтобы получить помощь для этого нестандартного компонента. –