WPF - Gebundene Strukturansicht, die keine Stammelemente aktualisiert

Ich verwende ein WPF TreeView-Steuerelement, das ich an eine einfache Baumstruktur gebunden habe, die auf ObservableCollections basiert. Hier ist die XAML:


<TreeView Name="tree" Grid.Row="0"> 
    <TreeView.ItemTemplate> 
        <HierarchicalDataTemplate ItemsSource="{Binding Path=Children}"> 
            <TextBlock Text="{Binding Path=Text}"/> 
        </HierarchicalDataTemplate> 
    </TreeView.ItemTemplate> 
</TreeView>  

Und die Baumstruktur:


public class Node : IEnumerable { 
    private string text; 
    private ObservableCollection<Node> children; 
    public string Text { get { return text; } } 
    public ObservableCollection<Node> Children { get { return children; } } 
    public Node(string text, params string[] items){ 
        this.text = text; 
        children = new ObservableCollection<Node>(); 
        foreach (string item in items) 
            children.Add(new Node(item)); 
    } 
    public IEnumerator GetEnumerator() { 
        for (int i = 0; i < children.Count; i++) 
            yield return children[i]; 
    } 
} 

Ich habe die ItemsSource dieses Baums als Stamm meiner Baumstruktur festgelegt, und die untergeordneten Elemente davon werden zu Elementen auf Stammebene im Baum (so wie ich es möchte):


private Node root; 

root = new Node("Animals"); 
for(int i=0;i<3;i++) 
    root.Children.Add(new Node("Mammals", "Dogs", "Bears")); 
tree.ItemsSource = root; 

Ich kann den verschiedenen Nicht-Stammknoten meiner Baumstruktur neue untergeordnete Elemente hinzufügen, die in der Baumansicht genau dort angezeigt werden, wo sie sollten.

root.Children[0].Children.Add(new Node("Cats", "Lions", "Tigers"));  

Aber wenn ich dem Wurzelknoten ein Kind hinzufüge:

root.Children.Add(new Node("Lizards", "Skinks", "Geckos")); 

Das Element wird nicht angezeigt, und nichts, was ich versucht habe (z. B. das Festlegen von ItemsSource auf null und dann wieder zurück), hat dazu geführt, dass es angezeigt wird.

Wenn ich die Eidechsen vor dem Festlegen der ItemsSource hinzufüge, werden sie angezeigt, aber nicht, wenn ich sie anschließend hinzufüge.

Irgendwelche Ideen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage