以下は、WPF では十分に簡単ですが、Silverlight ではどのように行うのでしょうか?
ここでのコツは、グループとエントリの両方を同じレベルに表示することです。さらに、エントリがネストされている深さがわかりません。最初のレベルまたは n 番目のレベルにある可能性があります。H.DataTemplate (または任意の DataTemplate) に DataType="{x:Type local:Group}" プロパティがないため、これは Silverlight では困難です。Hierarchial ItemsSource が失われるため、独自のカスタム DataTempalteSelector の構築も機能しませんでした。(これは私がすぐに調査する新しいアイデアを与えてくれました)
例:
Group1
--Entry
--Entry
Group2
--Group4
----Group1
------Entry
------Entry
----Entry
----Entry
--Entry
--Entry
Group3
--Entry
--Entry
あなたのクラス:
public class Entry
{
public int Key { get; set; }
public string Name { get; set; }
}
public class Group
{
public int Key { get; set; }
public string Name { get; set; }
public IList<Group> SubGroups { get; set; }
public IList<Entry> Entries { get; set; }
}
あなたのxaml:
<TreeView Name="GroupView" Grid.Row="0" Grid.Column="0" ItemsSource="{Binding}">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type local:Group}" ItemsSource={Binding Items}">
<TextBlock Text="{Binding Path=Name}" />
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type local:Entry}" >
<TextBlock Text="{Binding Path=Name}" />
</DataTemplate>
</TreeView.Resources>
</TreeView>