如何按Silverlight中的第一个字母对列表中的项目进行分组?

时间:2010-06-30 19:09:04

标签: c# silverlight listbox windows-phone-7

我有一个ListBox,我绑定了一个排序的字符串列表。我想显示带有分隔符(标题)的列表,宣布新信件 - 类似于iPhone上的“联系人”列表。

有人知道如何实现这一目标吗?也许使用ListBox不是正确的想法。

我正在使用VS Express 2010 for Windows Phone 7进行此操作。

4 个答案:

答案 0 :(得分:7)

我不能代表Silverlight,但一般的.NET实践如下:

var groupings = mySortedString.GroupBy(x => x.Substring(0,1));

这会使IEnumerable<IGrouping<string, string>>您将此列表绑定到列表框。

从这里你必须拿出XAML来表示你喜欢的方式,但这会把你所有的物品分组。

注意:IGrouping<,>实现IEnumerable<>,因此您可以枚举它的项目。

答案 1 :(得分:1)

您可能会在Erik Klimczak's implementation of a jump list control中找到一些灵感。

答案 2 :(得分:1)

现在可以在11月发布的Windows Phone Toolkit中找到跳转列表。

详情请点击此处。请参阅 LongListSelector

Mo controls, mo controls, mo controls... [Announcing the second release of the Silverlight for Windows Phone Toolkit!] - Delay's Blog

答案 3 :(得分:0)

我会使用SilverLight WP7 Toolkit的LongListSelector来执行此操作。让你的头脑如何运作可能令人困惑......我知道我当然做到了! 所以我刚刚建立了一个博客,介绍如何创建适合此的嵌套组。但是,如果您只是一个没有组快捷链接的直接列表,那么您可以绑定到普通集合并用作直接列表。

http://nicholasrogoff.wordpress.com/2011/01/28/creating-an-easy-grouped-observablecollection-for-the-longlistselector/