I have three linked Entities (Categories->Types->Classes) with one to many relationship.
Is it possible to bind only Categories entity and represent the rest using Navigation properties andHierarchicalDataTemplate ?
I imagine something like this :
<TreeView ItemsSource="{Binding Categories}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Categories}" >
<TextBlock Foreground="Red" Text="{Binding Types}" />
<HierarchicalDataTemplate.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Classes}">
<TextBlock Text="{Binding TypeName}" />
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate >
<TextBlock Text="{Binding ClassName}" />
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
I’ve done this recently, in a WPF project, I’ve updated the Types to match your names and Nav Properties.
You might want to consider changing Type/Class to something more specific since they’re used as keywords in the c# language, but I think you get the idea
What this will do is, it will match the datatype in the tree – If it matches
Category, it will create the stackpanel, then start another branch, using the navigation collectionTypes.For
types, it will do the same basic thing – create the panel for that item, then another branch, for it’s navigation collectionClass.If it’s
class, it will only create the panel, since it’s aDataTemplate, not aHierarchicalDataTemplate