在LongListSelector数据绑定 [英] Binding data in LongListSelector
问题描述
我指的是这里的例子: http://dotnet.dzone.com/文章/使用-longlistselector控制
I am referring to the example here : http://dotnet.dzone.com/articles/using-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:
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选择=(从C在myList中
组C由c.MainTitle成N
选择新GroupingLayer<字符串,为MyObject>(N))了ToList();
你会得到一个列表,其中每个项目有:
you get a list where every item has:
- 因为你$由MAINTITLE b $ b组Key属性(含MAINTITLE值的情况下)
- 的子项目的列表
当你定义的DataTemplate,可以将属性绑定关键的,因为存在于这个新的列表,但字幕不存在,所以你不能表现出来。
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屋!