在 LongListSelector 中绑定数据 [英] Binding data in LongListSelector
本文介绍了在 LongListSelector 中绑定数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我指的是这里的例子:http://dotnet.dzone.com/文章/使用-longlistselector-control
这是我的代码:
public class Chapters
{
private string mainTitle;
public string MainTitle
{
get { return mainTitle; }
set { mainTitle = value; }
}
private List<string> subTitle;
public List<string> SubTitle
{
get { return subTitle; }
set { subTitle = value; }
}
}
private static IEnumerable<HighwayCode> GetCityList()
{
return myList;
// Which already contains data:
MainTitle : Chapters
subtitle : ABC
subtitle : X
MainTitle : Chapters Two
subtitle : ASDF
subtitle : GHIJK
}
public class GroupingLayer<TKey, TElement> : IGrouping<TKey, TElement>
{
private readonly IGrouping<TKey, TElement> grouping;
public GroupingLayer(IGrouping<TKey, TElement> unit)
{
grouping = unit;
}
public TKey Key
{
get { return grouping.Key; }
}
public IEnumerator<TElement> GetEnumerator()
{
return grouping.GetEnumerator();
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return grouping.GetEnumerator();
}
}
XAML:
<phone:PhoneApplicationPage.Resources>
<DataTemplate x:Key="GroupHeader">
<Border Background="{StaticResource PhoneAccentBrush}" Margin="{StaticResource PhoneTouchTargetOverhang}" Padding="{StaticResource PhoneTouchTargetOverhang}">
<TextBlock Text="{Binding Key}"/>
</Border>
</DataTemplate>
<DataTemplate x:Key="ItemTmpl">
<Grid>
<TextBlock Style="{StaticResource PhoneTextLargeStyle}"
Foreground="Black"
Text="{Binding SubTitle}"></TextBlock>
</Grid>
</DataTemplate>
</phone:PhoneApplicationPage.Resources>
<phone:LongListSelector x:Name="longListSelector"
IsGroupingEnabled="True" LayoutMode="List" HideEmptyGroups="False"
ItemTemplate="{StaticResource ItemTmpl}"
GroupHeaderTemplate="{StaticResource GroupHeader}"/>
我是这样设置的:
var selected = (from c in myList
group c by c.MainTitle into n
select new GroupingLayer<string, MyObject>(n)).ToList();
longListSelector.ItemsSource = selected;
但对我来说,它只显示主标题,而根本不显示副标题.
But for me its only displaying the Main Title but Sub titles are not displaying at all.
这里有什么问题?
推荐答案
当你这样做时
var selected = (from c in myList将 c.MainTitle 分组为 nselect new GroupingLayer
你会得到一个列表,其中每个项目都有:
you get a list where every item has:
- 一个 Key 属性(在您的情况下包含 MainTitle 值),因为您按 MainTitle 分组!
- 子"项列表
当你定义你的DataTemplate时,你可以绑定属性Key",因为在这个新列表中存在,但是SubTitle不存在,所以你不能显示它!
When you define your DataTemplate, you can bind the property "Key" because exists in this new list, but SubTitle does not exists, so you can't show it!
你可以看看这个示例:
http://code.msdn.microsoft.com/wpapps/PhotoHub-Windows-Phone-8-fd7a1093
这篇关于在 LongListSelector 中绑定数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文