我的LonglistSelector仅显示GroupHeaderTemplate数据(ImageSource,Title),但不显示ItemTemplate DataTemplate(SubItemTitle,Location)。我该如何解决?
public class Data
{
public string Title { get; set; }
public string ImageSource { get; set; }
public List<SubItem> SubItems { get; set; }
public Data()
{
SubItems = new List<SubItem>();
}
}
public class SubItem
{
public string SubItemTitle { get; set; }
public string Location { get; set; }
}
<phone:LongListSelector ItemsSource="{Binding DataCollection}" Grid.Row="0" IsGroupingEnabled="True">
<phone:LongListSelector.GroupHeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="10">
<Image Source="{Binding ImageSource}"/>
<TextBlock Text="{Binding Title}"/>
</StackPanel>
</DataTemplate>
</phone:LongListSelector.GroupHeaderTemplate>
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
<StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding SubItemTitle}" Padding="5" FontSize="40"/>
<TextBlock Text="{Binding Location}" Padding="5" FontSize="40"/>
</StackPanel>
</StackPanel>
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>
答案 0 :(得分:0)
您必须转换您正在使用的任何类来对继承的项目进行分组。尝试使用List
而不是IEnumerator
。
此问题讨论了相同的longlistselector
问题。
Grouped LongListSelector: headers appear, items don't
希望它有所帮助!
答案 1 :(得分:0)
当我无法理解使用LongListSelector
进行分组时,这个MSDN示例对我帮助很大How to display data in a grouped list in LongListSelector for Windows Phone 8
需要按键值进行分组。在我所知道的所有例子中,总是这样:
List<AlphaKeyGroup<your_data_type>> my_group_list; // or
ObservableCollection<AlphaKeyGroup<your_data_type>> my_group_list;
不是具有SubList属性的List。
AlphaKeyGroup只是一个List<T>
/ ObservableCollection<T>
,其中包含一个Key的额外属性
想一想,在你的代码中,LongListSelector如何知道你的&#34; Title&#34;是组密钥而不是&#34; ImageSource&#34;?
如果MSDN页面上的代码太复杂而无法理解,您可以始终采用更简单的路径并使用GroupBy使用LINQ。
这是一个例子:Group by in LINQ