博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Silverlight实用窍门系列:73.Silverlight的DataGrid分组以及模拟合并单元格
阅读量:6678 次
发布时间:2019-06-25

本文共 3838 字,大约阅读时间需要 12 分钟。

一、DataGrid分组

  在Silverlight的表格中可能需要对某一些数据进行分组以方便客户查看,我们使用PagedCollectionView集合作为数据源,然后通过设置其GroupDescriptions属性值,添加需要分组的实体集合属性,注意:如果需要两层分组则添加两个属性即可。

  Xaml代码:

  Xaml.cs代码如下:

PagedCollectionView view = new PagedCollectionView(CityInfo.GetInfo());            //此处根据AddrName属性分组            view.GroupDescriptions.Add(new PropertyGroupDescription("AddrName"));            //如果需要多重分组,则取消以下注释            //view.GroupDescriptions.Add(new PropertyGroupDescription("CityName"));            this.ShowCityList.ItemsSource = view;

  实体数据源函数如下:

public static List
GetInfo() { var list = new List
(); list.Add(new CityInfo() { AddrName = "北京", CityName = "北京市", TelNum = "010" }); list.Add(new CityInfo() { AddrName = "上海", CityName = "上海市", TelNum = "020" }); list.Add(new CityInfo() { AddrName = "广东", CityName = "广州市", TelNum = "021" }); list.Add(new CityInfo() { AddrName = "广东", CityName = "深圳市", TelNum = "0210" }); list.Add(new CityInfo() { AddrName = "四川", CityName = "成都市", TelNum = "028" }); list.Add(new CityInfo() { AddrName = "四川", CityName = "内江市", TelNum = "0832" }); list.Add(new CityInfo() { AddrName = "四川", CityName = "自贡市", TelNum = "0831" }); return list; }

  效果如下:

二、模拟合并单元格

  在本实例中我们通过对数据源进行构造,然后在DataGrid控件上设置DataGridTemplateColumn的模板方式模拟合并单元格。

  Xaml代码:

  Xaml.cs代码:

this.ShowCity.ItemsSource = CityInfo.GetInfoList();

  实体数据源函数如下:

public static List
GetInfoList() { var list = new List
(); list.Add(new CityInfo() { AddrName = "北京", CityNames = new List
() { "北京市" }, TelNums = new List
() { "010" } }); list.Add(new CityInfo() { AddrName = "上海", CityNames = new List
() { "上海市" }, TelNums = new List
() { "020" } }); list.Add(new CityInfo() { AddrName = "广东", CityNames = new List
() { "广州市", "深圳市" }, TelNums = new List
() { "021","0210" } }); list.Add(new CityInfo() { AddrName = "四川", CityNames = new List
() { "成都市", "内江市","自贡市" }, TelNums = new List
() { "028","0832","0831" } }); return list; }

  效果如下:

三、实体类如下:

///     /// 城市信息的实体类    ///     public class CityInfo    {        private string _AddrName;        private string _CityName;        private string _TelNum;        public string AddrName        {            get { return _AddrName; }            set { _AddrName = value; }        }        public string CityName        {            get { return _CityName; }            set { _CityName = value; }        }        public string TelNum        {            get { return _TelNum; }            set { _TelNum = value; }        }        private List
_CityNames; public List
CityNames { get { return _CityNames; } set { _CityNames = value; } } private List
_TelNums; public List
TelNums { get { return _TelNums; } set { _TelNums = value; } }}

  本实例需要引用System.Windows.Data.dll程序集,如需源码请点击 下载 

转载地址:http://hcyao.baihongyu.com/

你可能感兴趣的文章
行业渠道再洗牌,运营商或重掌行业话语权
查看>>
英特尔驱动边缘计算产业联盟国际化 拓展计算边界
查看>>
网络电话为什么一直是“邻家的电话”?
查看>>
评估公共云存储提供商的四个标准
查看>>
由世纪互联运营的 Power BI 受用户喜爱的六大理由
查看>>
迪斯尼正研究使用RFID技术,增强人与物之间的互动
查看>>
热带地区数据中心需要太阳能发电,而不是自然冷却
查看>>
炙手可热的威胁情报!飞塔已应用了15年
查看>>
Ruckus提高了Brocade 2016年Q4盈收
查看>>
2015年度互联网安全报告发布 移动支付成重灾区
查看>>
数百亿美元半导体设备投资 如何避免被海外大厂瓜分?
查看>>
黑客测试有望提高智能家居安全性?
查看>>
思科推NCS4200家族 与Ciena竞争Verizon城域订单
查看>>
易成新能28亿驰援赛维破产重整 试水另类“债转股”
查看>>
医疗信息安全马虎不得
查看>>
智慧城市需依托社会共建
查看>>
中国首个LTE IoT多模外场测试启动 多模成物联网时代主旋律
查看>>
ARM 发布最新高端移动技术,提升沉浸式体验
查看>>
台积电签约南京拼抢大陆市场
查看>>
工业物联网 通用联手华为造起来!
查看>>