uwp开发:数据模板选择器

96
搬砖的包工头
2019.01.21 13:57 字数 629

 这两天,在做《简影uwp》的首页推荐版块时,用到了数据模板选择器,所以简单介绍一下。数据模板选择器。顾名思义,就是可以选择性的展示不同的数据模板。那么,什么时候用数据模板选择器?怎么用呢?往下看:

应用场景:

同样是以我目前正在做的《简影uwp》为例,在做首页推荐版块时,要展示的数据是不同的版块的,都放在了一个集合中,这样的话,如果直接将数据绑定到ListView或者GridView上显示的话,是不可取的。虽然这些数据在一个集合内,但是因为集合内每个种类都不一样,显示的方式,展示的数据都不同,那么针对这种情况,就需要用到数据模板选择器了。根据不同的种类,展示不同的模板。

实例演示:

第一步:要使用数据模板选择器,首页定义一个数据模板选择器类。让这个类继承自:DataTemplateSelector。再定义需要展示的所以模板类型。然后重写它的SelectTemplateCore方法即可。根据集合内的类型,返回不同的数据模板。代码如下;

  public sealed class CustomDataTemplateSelector : DataTemplateSelector

    {

        public DataTemplate CollectionTemplate { get; set; }

        public DataTemplate ThreadTemplate { get; set; }

        public DataTemplate MuscicTemplate { get; set; }

        public DataTemplate VideoTemplate { get; set; }

        public DataTemplate TcTemplate { get; set; }

        protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)

        {

            RecList list = item as RecList;

            if (list != null)

            {

                switch (list.type)

                {

                    case "collection":

                        return CollectionTemplate;

                    case "threadmusic":

                        return MuscicTemplate;

                    case "threadvideo":

                        return VideoTemplate;

                    case "movielines":

                        return TcTemplate;

                    default:

                        return ThreadTemplate;

                }

            }

            return null;

        }

    }

第二步:

在前台定义需要的数据模板,即DataTemplate.要和上面后台定义的对应。

部分代码截图如下: 即是两个不同的数据模板。

第三步:定义Listview或者GridView,然后引用定义的数据模板即可。

这样,就可以实现根据集合内的对象不同,展示不同的数据模板了。最后,上一张,正在做的这个页面的图示:

这样就可以实现在一个列表内展示不同类型的内容了。好了,今天就记到这里。欢迎热爱uwp开发的同学加入uwp开发交流群193148992.共同学习交流。

日记本