I\'m using a WPF TreeView control, which I\'ve bound to a simple tree structure based on ObservableCollections. Here\'s the XAML:
You are setting ItemsSource = root which happens to implement IEnumerable but is not in and of itself observable. Even though you have a Children property which is observable, that's not what you're binding the TreeView to so the TreeView doesn't have any way of listening to changes that occur through the Children property.
I would drop IEnumerable from the Node class altogether. Then set treeView.ItemsSource = root.Children;