implemented hierarchical data binding;
implemented an ad hoc way of generating TreeNodeView-derived objects and template-based views for the node header;
introduced ObservableObject;
updated tree model to be more interface-based;
removing TreeNode-specific construction in TreeNodeList.Add;
redefined the demo's TreeNodeView UI in XAML (DemoTreeCardView)