今天,我在做最近正在开发的“简影”uwp应用时遇到一个问题,其中有个栏目,叫做“画报”,是分组显示一组一组的 图片,每组图片在界面上只显示9个,点击去以后显示该组的所有图片。
其中,Model 如下: 画报类,其中有个属性是图片类集合。
在View界面,通过ListView嵌套绑定GridView
但是,要求是每项只能显示9张图片,而集合内的数据不止9张,如果这样直接绑定到GridView上,那么会将ImagList里面的所以图片都显示出来,那么,要想每项都显示9张。这时候,该怎么办呢?如果之前没有接触过值转换器,那么想到的肯定是改变Model里面的属性,因为属性是绑定在GridView上的,通过访问器来限制属性,这样做也可以,但是这样就会有一个问题,会对原数据造成影响。那么怎样才能不改变属性的情况下,让界面上得到想要的结果呢?此时,就需要用值转换器了。
定义一个转换类:实现IValueConverter接口,这样,就实现了一个值转换类。在Convert方法里,对我们需要改变的集合作限制,让它只显示前9个。
然后,在View层定义:
<Page.Resources>
<cvt:ImageConverter x:Key=”imgCvt”/>
</Page.Resources>
并引入转换类的命名空间,然后我们通过绑定的Convert属性来绑定转换类。这样,就完成了在界面上每组只显示9张图片,并且不改变属性的效果。
如果有问题,欢迎大家加入uwp开发交流学习群:193148992 。