Вам нужна коллекция объектов верхнего уровня ReportDefinition
:
TopLevelReportDefinitions = ReportDefinitions.Where(rd => rd.ParentID == 0)
Вам необходимо связать эту коллекцию с ItemsSource
из TreeView
.
В EF вам также необходимо создать отношение родитель-потомок на ReportDefinition
, связывающее детей с родителем с помощью ParentID
. Для удобства можно назвать реверсивную коллекцию Children
. Коллекция ReportDefinition
объектов непосредственно под другим ReportDefinition
является тогда коллекцией:
ReportDefinition.Children
Затем вам нужно создать HierarchicalTemplate
в TreeView
:
<TreeView ItemsSource="{Binding TopLevelReportDefinitions}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<TextBlock Text="{Binding Name}"/>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>