现在的位置: 首页 > 综合 > 正文

WPF:使用HierarchicalDataTemplate数据绑定LINQ的分组

2012年04月30日 ⁄ 综合 ⁄ 共 832字 ⁄ 字号 评论关闭

LINQ的分组(GroupBy方法)返回一个IEnumerable<IGrouping<TKey, TElement>>对象,其中TKey和TElement分别是键和值的类型。

而这个IGrouping<TKey, TElement>类型就继承IEnumerable<TElement>用来代表一系列的分组后对象。组的值(键值)可以通过IGrouping的Key属性得到(类型是TKey)。(可以参考MSDN:http://msdn.microsoft.com/zh-cn/library/bb344977.aspx

 

了解了IGrouping,WPF的数据绑定就好说了,看代码:

XAML:

<Window.Resources>

    <HierarchicalDataTemplate x:Key="dt" ItemsSource="{Binding}">

        <TextBlock Text="{Binding Key,StringFormat=除3余数:{0}}"/>

        <HierarchicalDataTemplate.ItemTemplate>

            <DataTemplate>

                <TextBlock Text="{Binding}"/>

            </DataTemplate>

        </HierarchicalDataTemplate.ItemTemplate>

    </HierarchicalDataTemplate>

</Window.Resources>

<Grid>

    <TreeView Name="treeView" ItemTemplate="{StaticResource dt}"></TreeView>

</Grid>

 

赋值和LINQ代码:

int[] arr = { 1, 2, 3, 4, 5, 6 };

treeView.ItemsSource = arr.GroupBy(i => i % 3);

 

结果:

image

抱歉!评论已关闭.