日期:2014-05-17  浏览次数:20774 次

(最新)Windows 8 Metro 应用开发的入门 Metro App的几个新控件
摘 要

基于Silverlight开发Metro App可以使用Silverlight原生的控件,为了更好的开发Metro App,控件库又专门增加了几个新的控件,如:GridView、Flipview、ProgressRing、SemanticZoom和VariableSizedWrapGrid等,这些控件为平板设备提供了良好的触控体验,这一章我们来介绍一下这几个控件的简单用法。

第1节 GridView

GridView是以网格样式展现一组数据,在Web开发中就已经存在,主要用于多行多列的数据显示中。Metro中以分组形式表达数据使用GridView更得心应手,在Silverlight 5及以前版本中,如果想实现分组数据展现要先写一堆数据模板,而在Metro中,这种展现方式得到了增强,GridView 是专门用于分组数据的,如果仅仅是列表数据,则建议使用ListView。

GridView控件有几个非常重要的常用成员:

(1) 数据源

如果是以分组形式展示数据,则数据源必须是可分组的,也即是有主从关系,通常是主列表项中每一项可能存在着某一子列表。GridView的数据源依托于CollectionViewSource,CollectionViewSource有一个属性IsSourceGrouped指明数据源是否是分组源数据集合,还有一个属性ItemsPath指明查找子数据项的路径,通常将可分组的源数据指定给CollectionViewSource对象的Source属性,如下定义了年级与学生的主从关系,年级包含了学生的数据列表:

    public class Grade
    {
        public Grade()
        {
            Students = new ObservableCollection<Student>();
        }
        public string Name { get; set; }
        public ObservableCollection<Student> Students { get; private set; }
    }

    public class Student
    {
        public string Name { get; set; }
        public DateTime Birthday { get; set; }
        public bool IsClassLeader { get; set; }
        public string Grade { get; set; }
    }

以下代码来模拟生成三个年级的学生:

        private List<Grade> CreateGrades()
        {
            List<Grade> Grades = new List<Grade>();
            for (int i = 1; i <= 3; i++)
            {
                Grade grade = new Grade();
                grade.Name = "年级 " + i;
                for (int j = 1; j <= 5; j++)
                {
                    grade.Students.Add(new Student()
                    {
                        Name = "王学生 " + j,
                        IsClassLeader = true,
                        Birthday = startDate.AddDays(j + 1),
                        Grade =
友情链接: 爱易网 云虚拟主机技术 云服务器技术 程序设计技术 开发网站 APP开发教程
Copyright © 2013-2024 爱易网页 当前在线:607人  网站在3分59秒内访问总人数:1749人 当前 43.52%  粤ICP备18100884号-2