Je veux construire dynamiquement un TreeView en utilisant un nœud qui représente un nœud d'arbre typique. Le nœud ressembleUne meilleure façon de remplir dynamiquement le TreeView
class Node
{
public Node(string cont) {
Content = cont;
Children = new List<Node>();
}
public string Content { get; set; }
public List<Node> Children { get; set; }
public bool IsLeaf {
get { return Children.Count == 0; }
}
public bool IsVisible {
get { return true; }
}
}
Pour ce que j'ai écrit simple traversal arbre qui ajoute TreeViewItems
void XmlTreeTraversal(DataPoolNode curNode, TreeViewItem curViewNode) {
if (curNode.IsLeaf)
return;
var contentNode = (DataPoolNode)curNode;
foreach (var node in contentNode.Children) {
TreeViewItem childViewNode = AddNewNodeToTreeView(node.Content, curViewNode);
XmlTreeTraversal(node, childViewNode);
}
}
TreeViewItem AddNewNodeToTreeView(string description, TreeViewItem curViewNode) {
TreeViewItem newTVI = new TreeViewItem();
newTVI.Header = description;
curViewNode.Items.Add(newTVI);
return newTVI;
}
Le problème avec l'approche est que les données et la vue sont étroitement liés. Donc, il ne répond pas MVVC. Peut-être, vous connaissez une autre solution pour ce problème?