2012-08-03 100 views
0

我想使用链接到组数据,并直接在treeview1.itemsource中使用它。我使用的 代码:Linq Group By与TreeView

DisksTreeView1.ItemsSource = (From g As Classes.DiskPrime In CurrentVariables.DisksList 
            Group By g.Genre 
             Into MyGroup = Group) 

和XAML是:

<TreeView Name="DisksTreeView1" > 
    <TreeView.ItemTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding Namee}" /> 
     </DataTemplate> 
    </TreeView.ItemTemplate> 
</TreeView> 

类代码是:

Public Class DiskPrime 
     Property ID As String 
     Property Namee As String 
     Property Genre As String 
     Property DateCreated As Date 
     Property Path As String 
End Class 

运行的程序,我只得到一个空白的树形后,能你请纠正我在哪里做错了。谢谢。

回答

0

使用GroupBy会返回IEnumerable<IGrouping<string, DiskPrime>>,这意味着您实际上绑定到IGrouping<string, DiskPrime>而不是DiskPrime

要查看你可以绑定到Key组名称,而不是Namee

这虽然将只显示第一级(组名)。为了查看每个组包含哪些元素,您需要使用HierarchicalDataTemplate而不是DataTemplate

+0

感谢您的信息,但如果IGrouping是结果,那里的分组项目列表,我的意思是你说IGrouping 列表是结果,所以我怎么知道他们是如何分组的。 – surpavan 2012-08-03 19:13:27