![xaml wpf treeview example xaml wpf treeview example](https://www.jam-software.com/sites/default/files/2018-12/TreeSizeV7_SSH.png)
Hopefully you and others keep up such great community work. I do not mean anything negative by that statement other than it is simply ‘hard’ to do. These ‘narrow’ M-V-VM articles that you, me and others do are fantastic and useful (yours the most), but unfortunately a high percentage of developers probably do not know how to take it to the next level of designing an entire application using M-V-VM (or other variants). The problem is that it is not easy to create modular, flexible, simple designs. WPF makes it easy to create modular, flexible, and simple designs. WPF has the short term pain of “how do I design this to support all of the needed UI/user features, yet still interact with my data/logic” The WinForms has the short term benefit of ‘oh I have the UI right here I can make my treenode do this…” yet the long term downside of UI code mixed with other logic. WPF provides the capability to design things they were meant to be designed. WinForms forces developers to hack around in the UI with logic/data etc. I’m not trying to sound like the broken record ‘nice post’ comments… but you could not have put it any better. In WPF, the TreeView control provides a view of a tree. It might seem like a minor difference, but, in my opinion, it represents a significant change of mindset. We can remain focused on the tree data structure, it’s behavior, it’s state, and just tell the TreeView how we want to view the tree. We declare all of this in XAML, and let TreeView handle all the details of applying our styles and templates. We can provide in-depth customizations for how the TreeView renders the items, by setting properties such as ItemContainerStyle to affect properties of every TreeViewItem, and ItemTemplate to specify what each item should look like and where its child items come from.
![xaml wpf treeview example xaml wpf treeview example](https://i.stack.imgur.com/A43d6.png)
We are not required to focus much on the TreeView, but more on the data we actually care about. At that point, the TreeView will do all the grunt work of creating TreeViewItems and hooking them together for us. The fact that the WPF TreeView supports data binding allows us to create a tree data structure, perhaps of custom ViewModel objects, and provide it to the TreeView control’s ItemsSource property. We can use the TreeView in our WPF programs to literally provide a view of a tree. Granted, at the end of the day, it still has a tree data structure consisting of TreeViewItem objects, but the similarities end there. The WPF TreeView control is very different. WinForms should have a Tree control instead of a TreeView control. By the same reasoning, we should call the Menu a MenuView and the ComboBox a ComboBoxView, but that is not the case. One could argue that the WinForms TreeView control’s name is a misnomer, because it can only show its own TreeNodes. You create a tree data structure in the control, where each node in the tree is of type TreeNode, and the control renders those nodes. The WinForms TreeView control is not really providing a “view” of a tree: it is the tree. After a while, I got used to the name and never gave it much thought, until now. NET 1.0 era, I don’t think any other control had the word “View” tacked onto the end of its name, except for ListView. Why not call it the Tree control? Why did they add the word “View” to the end? At the time, the. When I first started learning about Windows Forms, I thought the TreeView control had a strange name. My recent article about it, which, by the way, is my wedding gift to Sacha Barber, discusses how the ideal way of working with a TreeView is to bind it to a ViewModel, and then program against the ViewModel.
![xaml wpf treeview example xaml wpf treeview example](https://www.c-sharpcorner.com/UploadFile/mahesh/treeview-in-wpf/Images/WPFTreeViewImg6.jpg)
I have been thinking a lot about the WPF TreeView control lately.