所以,以下WPF中很容易,但您如何在Silverlight中做到這一點?Silverlight與WPF - Treeview與HierarchialDataTemplate
請注意,這裏的技巧是同時顯示組和條目。 另外你不知道條目嵌套的深度,他們可能在第一或第n層。 由於缺少H.DataTemplate(或任何DataTemplate)中的DataType =「{x:Type local:Group}」屬性,因此這在Silverlight中很難實現。構建我自己的自定義DataTempalteSelector也沒有用,因爲Hierarchial ItemsSource會丟失。 (這只是給了我一個新的想法,我會盡快調查)
例子:
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>
這是否的ItemsSource = 「{綁定表項}」 真的WPF工作?這是什麼「項目」? – 2010-11-30 22:52:42
好點,我沒有自己測試它,我只是提到這篇文章:http://stackoverflow.com/questions/4150334/treeview-binding那裏的片段被給出作爲答案。 – AGhosT 2010-12-02 11:07:48
我suppos項目應該只是改變爲SubGroups(和TreeView中的綁定應該是obs.collection) –
AGhosT
2010-12-02 11:08:38