Во-первых, извините за мой плохой английский.У меня есть объект EF, который выглядит следующим образом:
class Item
{
public Guid Id { get; set; }
public string Title{ get; set; }
public Guid? ParentId { get; set; }
public ICollection<Item> Items { get; set; }
}
Теперь я хочу загрузить данные из этого объекта в виде дерева ... лучшее, что я мог получить, это следующее xaml:
<TreeView Name="treeItems">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type local:Item}" ItemsSource="{Binding Items}">
<TextBlock Text="{Binding Path=Title}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
и загрузите данные с помощью
var itens = from it in ctx.Item select it;
treeItems.ItemsSource = itens;
Очевидно, что данные в древовидном представлении отображаются следующим образом:
ItemA
ItemA1
ItemA2
ItemA1 --repeated node
ItemA2 --repeated node
Как я могу настроить (или переписать) свой код, чтобы древовидное представлениеотображает данные в иерархическом порядке, без повторяющихся узлов?