首先,为我糟糕的英语感到抱歉。
我有一个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;
这显然会像这样显示TreeView上的数据:
ItemA
ItemA1
ItemA2
ItemA1 --repeated node
ItemA2 --repeated node
如何调整(或重写)代码,使TreeView以分层方式显示数据,而不重复节点?