码迷,mamicode.com
首页 > 其他好文 > 详细

uwp开发:数据模板选择器

时间:2016-07-10 12:28:24      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

 

  这两天,在做《简影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.共同学习交流。

——IT追梦园

uwp开发:数据模板选择器

标签:

原文地址:http://www.cnblogs.com/wpali/p/5657390.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!