The TaskNode example implements a task list using treeview. It does so by extending the TextNode class to have additional, specific functionality. In this example, each TaskNode has three potential states: Checked, partially-checked (not all subtasks complete), and unchecked. Checking off a task automatically checks off all subtasks.
This example explores the extension of TreeView via a subclass of the TextNode class. The full source of the TaskNode subclass follows: