打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Silverlight的DataGrid分组以及模仿归并单位格
Silverlight的DataGrid分组以及模仿归并单位格
作者:- 来源:-  时间:2012-09-13

一、DataGrid分组

  在Silverlight的表格中可能须要对某一些数据进行分组以便利客户查看,我们应用PagedCollectionView凑集作为数据源,然后经由过程设置其GroupDescriptions属性值,添加须要分组的实体凑集属性,重视:若是须要两层分组则添加两个属性即可。

Xaml代码: 

        <sdk:DataGrid HorizontalAlignment="Left"  AutoGenerateColumns="False"   Name="ShowCityList"
                      VerticalAlignment="Top"  Height="400"  >
            <sdk:DataGrid.Columns>
                <sdk:DataGridTextColumn Header="省会" Binding="{Binding AddrName}"  Width="108"/>
                <sdk:DataGridTextColumn Header="城市" Binding="{Binding CityName}" IsReadOnly="True" Width="108"/>
                <sdk:DataGridTextColumn Header="德律风区号" Binding="{Binding TelNum}" IsReadOnly="True" Width="108"/>
            </sdk:DataGrid.Columns>
        </sdk:DataGrid>

 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<CityInfo> GetInfo()
        {
            var list = new List<CityInfo>();
            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代码:

         <sdk:DataGrid HorizontalAlignment="Left"  AutoGenerateColumns="False"   Name="ShowCity"
                      VerticalAlignment="Top"  Height="400"  Margin="400 0 0 0" >
            <sdk:DataGrid.Columns>
                <sdk:DataGridTextColumn Header="省会" Binding="{Binding AddrName}" IsReadOnly="True" Width="108"/>
                <sdk:DataGridTemplateColumn Header="城市" Width="108">
                    <sdk:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <ItemsControl ItemsSource="{Binding CityNames}"/>
                        </DataTemplate>
                    </sdk:DataGridTemplateColumn.CellTemplate>
                </sdk:DataGridTemplateColumn>
                <sdk:DataGridTemplateColumn Header="德律风区号" Width="108">
                    <sdk:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <ItemsControl ItemsSource="{Binding TelNums}" />
                        </DataTemplate>
                    </sdk:DataGridTemplateColumn.CellTemplate>
                </sdk:DataGridTemplateColumn>
            </sdk:DataGrid.Columns>
        </sdk:DataGrid>

 

Xaml.cs代码:

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

 

实体数据源函数如下:

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

 

  结果如下:

 

 

三、实体类如下:

    /// <summary>
    /// 城市信息的实体类
    /// </summary>
    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<string> _CityNames;
        public List<string> CityNames
        {
            get { return _CityNames; }
            set { _CityNames = value; }
        }

        private List<string> _TelNums;

        public List<string> TelNums
        {
            get { return _TelNums; }
            set { _TelNums = value; }
        }
}

  本实例须要引用System.Windows.Data.dll法度集,在学生的脑力劳动中,摆在第一位的并不是背书,不是记住别人的思想,而是让学生本人进行思考,也就是说,进行生动的创造,借助词去认识周围世界的事物和现象,并且与此联系地认识词本身的极其细腻的感情色彩。 ——苏霍姆林斯基给教师的建议


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
DataGrid内绑定ComboBox和ListBox以及取值
Silverlight实用窍门系列:47.Silverlight中元素到元素的绑定,以及ObservableCollection和List的使用区别
GreenDao
C# 天气预报
查询控件、分页控件、页面展示控件,我的Web开发三大得力助手
ArcGIS.Server.9.3和ArcGIS API for Flex实现MapTips(八)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服