uwp开发:数据模板选择器

 

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

 

posted @ 2016-09-28 17:18  天涯海角路  阅读(212)  评论(0)    收藏  举报