I want a TreeView with checkboxes and I'm trying to follow this tutorial. However, in it, he creates all his content for the TreeView at runtime. I have an XML file that I have accessible as an XmlDataProvider in my XAML:
<XmlDataProvider Source="XmlData/Versions.xml" XPath="//*[count(*)=0]"
x:Key="versionsXml" />
I have a view model class with IsChecked and Name properties, and I want to use this to represent nodes in my XML:
<Versions>
<Version name="1.0">
<Version name="1.0.001" />
<Version name="1.0.002" />
</Version>
</Versions>
My TreeView will display leaf nodes (i.e., 1.0.001 and 1.0.002) with a checkbox. How can I populate my TreeView with not the XmlDataProvider's content directly, but rather a List<MyViewModel>? I can create a property in my DataContext that returns a List<MyViewModel>, then bind my TreeView to that property, but I don't know how, in a C# property getter, to read in the XML data from the XmlDataProvider. When I use TryFindResource and cast the object result to XmlDataProvider, the Document and Data properties are null for my versionsXml resource (defined in <UserControl.Resources>).
After reading this thread, I did the following:
Then, in C# to access the
XmlDataProviderdata since theDataproperty was no longer null: