这两天,在做《简影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.共同学习交流。
时间: 2024-10-26 00:20:18