【windows phone】CollectionViewSource的妙用

2021-05-01 06:26

阅读:399

标签:html   ril   reg   www   class   panel   xmlns   列表   member   

在windows phone中绑定集合数据的时候,有时候需要分层数据,通常需要以主从试图形式显示。通常的方法是将第二个ListBox(主视图)的数据源绑定到第一个ListBox

(从视图)的SelectedItem,或者通过第一个ListBox的SelectionChanged事件来设置绑定。但是借助CollectionViewSource类可以更方便的实现;

CollectionView是一个集合视图类,支持数据的排序、分组、过滤。对数据的映像进行排列组合;

CollectionViewSource是CollectionView的一个XAML代理,可以在XAML中使用;

案例说明:用主从试图关系显示两个的员工列表;效果图如下:

技术分享

前期工作,创建三个类来初始数据源;

(1)Employee.cs

技术分享
    public class Employee
    {
        public int Number { get; set; } //工号
        public string  Name { get; set; } //姓名
        public string  Sex { get; set; } //性别
        public int BirthYear { get; set; } //出生年份
    }
技术分享

(2)Department.cs

    public class Department:ObservableCollection
    {
            public string DepName { get; set; }
            public ObservableCollection Employees { get; set; }
    }

(3)DepartmentList.cs

技术分享
    public class DepartmentList:ObservableCollection
    {
        public DepartmentList()
        {
            ObservableCollection employee1 = new ObservableCollection 
            {
                new Employee{Number=2012,Name="netboy",Sex="boy",BirthYear=1992},
                new Employee{Number=2013,Name="dandan",Sex="girl",BirthYear=2000},
                new Employee{Number=2014,Name="xiaobai",Sex="girl",BirthYear=2012}
            };

            ObservableCollection employee2 = new ObservableCollection 
            {
                new Employee{Number=2020,Name="kaizi",Sex="girl",BirthYear=2011},
                new Employee{Number=2021,Name="yangzai",Sex="gril",BirthYear=2010}
            };

            this.Add(new Department { DepName = "技术部", Employees = employee1 });
            this.Add(new Department { DepName = "商务部", Employees = employee2 });
            //ObservableCollection deparment = new ObservableCollection 
            //{
            //    new Department{DepName="tengfei",Employees=employee1},
            //    new Department{DepName="google",Employees=employee2}
            //};
        }

    }
技术分享

注意:使用ObservableCollection的时候需要引用命名空间——using System.Collections.ObjectModel;

通过在新建页面的phone:PhoneApplicationPage标记中添加一个命名空间映射。代码如下:

xmlns:local="clr-namespace:数据绑定"//我的项目为“数据绑定”

添加资源字典:

技术分享
   
技术分享

在布局页面中添加如下代码:

技术分享
            
技术分享
http://www.cnblogs.com/ngnetboy/archive/2012/04/12/2444659.html

【windows phone】CollectionViewSource的妙用

标签:html   ril   reg   www   class   panel   xmlns   列表   member   

原文地址:http://www.cnblogs.com/sjqq/p/7788920.html


评论


亲,登录后才可以留言!