まず、私の下手な英語で申し訳ありません。次のような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;
これにより、明らかに次のようにツリービューにデータが表示されます。
アイテムA アイテムA1 アイテムA2 ItemA1 -- 繰り返されるノード ItemA2 -- 繰り返されるノード
ノードを繰り返さずに、ツリービューにデータが階層的に表示されるように、コードを微調整 (または書き換え) するにはどうすればよいですか?