在LongListSelector数据绑定 [英] Binding data in LongListSelector

查看:142
本文介绍了在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆