Recursive Data Bound TreeView
I decided that my data bound treeview control should support recursive data structures. For example an OPML file consists of a set of "outline" elements and each outline can have child outlines inside. Therefore I've added a method to the control called "AddRecursiveLevel". So the tree will then recurse over the data structure until all leaves have been reached. The recursive level cannot have a CurrencyManager to update because that would require changing the data source of it (which can't be done easily). It does not make much sense to have an idea of "currency" when dealing with arbitrary depth tree data structure. The solution is to add a SelectedDataItem property to the control. Code that uses the treeview control can data bind that property to the datasource property of a BindingSource component. Other UI controls can then bind to that BindingSource. That way the user can drill down to a node in the tree view and then edit data using controls bound to the selected item.
There is still a fair bit of work to do in terms of enforcing constraints and documentation. I'm very busy getting ready for my trip to the USA on Thursday. Hopefully when I return I will have some more free time to work on the control.