Я использую древовидный элемент управления из Developer's Express. Он возьмет таблицу данных и отобразит / отредактирует ее иерархически.
Все, что ему нужно, это поле первичного ключа и поле родительского идентификатора в таблице, и оно может выяснить, что и куда.
Вы можете сделать то же самое, если вы катите свой собственный код и используете свой собственный класс.
class Node
{
System.Collections.Generic.List<Node> _Children;
String Description;
void Node()
{
_Children = new System.Collections.Generic.List<Node>();
}
public System.Collections.Generic.List<Node> Children()
{
return (_Children);
}
}
class Program
{
static void Main(string[] args)
{
System.Collections.Generic.List<Node> myTree = new System.Collections.Generic.List<Node>();
Node firstNode = new Node();
Node childNode = new Node();
firstNode.Children().Add(childNode);
}
}