分组LongListSelector:标题出现,项目不出现

C#中的WinPhone 8项目。 我正在尝试填充分组列表。 显示组标题,但项目不显示。 相关代码是:

class MyPage { public class Group : IGrouping { public string Title{get;set;} public string[] Items; public string Key { get { return Title; } } public IEnumerator GetEnumerator() { return (Items as IEnumerable).GetEnumerator(); } System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return Items.GetEnumerator(); } } private Group[] m_ItemGroups = { new Group(){Title = "A", Items = new string[] {"A", "ASA"}}, new Group(){Title = "X", Items = new string[] {"X", "XX"}}, }; private void OnLoaded(object sender, RoutedEventArgs e) { TheList.ItemsSource = m_ItemGroups; } } 

和XAML:

               

两个GetEnumerator()方法都没有被调用。 Key getter也从未被调用过。 看起来列表不能将我的Group类识别为字符串集合。 拜托,这里有什么问题?

项目模板很好。 当我将列表更改为非分组时,我看到两个带有虚拟文本的项目。

使用自定义类替换string作为项类型没有帮助。

Seva是正确的,Microsoft更改了您在分组模式下分配给LongListSelectorItemsSource的类型要求。

您需要将您正在使用的任何类转换为从inheritanceIEnumerable到仅inheritanceList

请参阅此处以获取答案的完整说明

实际上它非常简单,这就是你可以使用WP8 LongListSelector的Group类的例子如下所示:

  public class Group : List { public Group(char name, IEnumerable items) : base(items) { this.Letter = name; } public char Letter { get; set; } } 

看起来LongListSelector在分组模式下期望ItemsSource集合中的对象实现System.Collections.IList (无类型)。 一个简单的IEnumerator不会这样做。

我希望有记录。 到目前为止,WP8 SDK文档吸引了大量时间。