牛人莫入 Silverlight DataGrid 分组技巧

牛人莫入 Silverlight DataGrid 分组技巧

最近在项目中很多的地方都用到了数据的展示---DataGrid控件,在园子里面也有很多的朋友也对这个DataGrid控件也写了很多的教程;我这里也与其它人也没有什么区别,这里只是告诉大家一个小的技巧;

但是我相信这一个小的技巧对大家以后在项目中应该有一些帮助;

一天,领导走过来看了我用户管理UI,我用了一个DataGrid控件把用户用分页的方式给做了出来;这个用户里面有用户的部门,用户名,地址,等相关信息;领导看了,说

你的用户信息可以有一种层次结构就最好了,这一听他这句话,我就回答说,这个可以做的,我说可以按照部门来分组的;这里我就加上了一两句代码,按照领导的要求满足

了,也有了层次结构;可是领导看了,还是不很满意;他说,你看怎么给用户看英文,一定要把英文改成中文,并且这分组的这一行要与其它的行要有突出显示出来

这时,我没有直接的回答领导的问题,我说,这个让我看看,能解决;

为了解决领导的这个问题,我花费了很多的时间,在网上也没有看到这种的解决方案;最后没有办法,认真的去看Silverlight 帮助了;呵呵,通过去查帮助,找到了一解决

方案;

现在把这种方法与大家一起分享:DEMO中的数据是测试数据:

新建一个Student实体类:

public class Student
  {
      public string Name { get; set; }
      public int Age { get; set; }

      public string Phone { get; set; }
  }
 
把得到的数据,分组显示出来:
public void BindDataGrid()
      {
          PagedCollectionView pcv = new PagedCollectionView(getData);
          pcv.GroupDescriptions.Add(new System.Windows.Data.PropertyGroupDescription("Name"));
          MyDataGrid.ItemsSource = pcv;
      }
运行效果如下所示:

image

这时我们怎么来给上面图上的英文“Name”变成用户知道的意思呢?

DataGrid提供了一个分组行的事件;代码如下:

void MyDataGrid_LoadingRowGroup(object sender, DataGridRowGroupHeaderEventArgs e)
       {
           e.RowGroupHeader.PropertyName = "姓名";
          
       }
 
运行结果如下所示:
 

image

上面图中我们就达到领导的要求了,把英文修改成让用户能看懂的意思了;

接下来满足领导的第二个要求;只要给分组的行着色就可以与数据行区别开来了;

 

void MyDataGrid_LoadingRowGroup(object sender, DataGridRowGroupHeaderEventArgs e)
        {
            e.RowGroupHeader.PropertyName = "姓名";
            e.RowGroupHeader.Background = new SolidColorBrush(Colors.Orange);
        }
运行结果如下所示:
 

image

 

总结:就这两个小问题,如果是第一次碰到,一定会让你痛苦一段时间,没有办法用户就是上帝,结果这两个问题都让我解决了;

在项目中我也碰到了很多的技术上的问题,目前碰到的问题差不多,都慢慢的得到了解决;在以后,我会把我在项目中的技术性的问题与大

家一起分享;

 

作者::good man(一起学习,共同进步)
出处:http://www.cnblogs.com/caodaiming
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

6
0
(请您对文章做出评价)
« 上一篇: (牛人莫入)Silverlight 独立文件存储
» 下一篇: LINQ - 在Where條件式中使用in與not in(转载)
posted @ 2009-12-09 21:05 good man 阅读(1229) 评论(15)   编辑 收藏 网摘 所属分类: Silverlight 2.0 学习入门教程

   回复   引用    
#1楼 210.74.129.* 2009-12-09 21:17 | 依缘*冰秀儿[未注册用户]
大拇指竖起来,GO GO 加油哦……
   回复   引用   查看    
#2楼 2009-12-09 21:57 | 吉日嘎拉>不仅权限设计       
我不是牛人,这个效果非常不错,继续支持你。
   回复   引用   查看    
#3楼 2009-12-09 21:58 | 吉日嘎拉>不仅权限设计       
并且推荐 +1, 我喜欢有程序有图片的,可以看看人家运行的效果。

   回复   引用   查看    
#4楼 2009-12-09 22:56 | 姜荣昌       
楼主,请教怎么让列头居中呢?
   回复   引用   查看    
#5楼 2009-12-09 23:07 | 阿K&LiveCai       
支持下,能记录自己解决一些问题的知识就是我们所要做的工作,不然以后再次碰到,就又要重新理解过一次了。。呵呵
再次支持

   回复   引用   查看    
#6楼 2009-12-09 23:18 | Little Kid       
学习一下....
   回复   引用   查看    
#7楼 [ 楼主]2009-12-10 08:11 | good man       
引用姜荣昌:楼主,请教怎么让列头居中呢?

这个是可以做到的,方法很多,请继续关注我的博客,在以后的章节将会解决你说的问题

   回复   引用   查看    
#8楼 [ 楼主]2009-12-10 08:12 | good man       
@阿K&LiveCai
@吉日嘎拉>不仅权限设计
谢谢你们的大力支持

   回复   引用   查看    
#9楼 2009-12-10 08:22 | Mr.King       
很实用..博主加油!
   回复   引用   查看    
#10楼 2009-12-10 09:51 | 韦恩卑鄙 alias:v-zhewg       
未经过不知难 +1
   回复   引用   查看    
#11楼 2009-12-10 10:12 | 邀月       
   回复   引用   查看    
#12楼 2009-12-10 15:02 | BillGan       
你还没解决你老板的问题哦,这个问题完了,下个问题来了啊。虽然文字是转换过来了,但是你点击分组行后,再展开,下面的分组行就显原型了呢,又出现列名了。刚好项目版本升级,遇到这个问题,呵呵。
   回复   引用   查看    
#13楼 2009-12-10 17:14 | 紫色永恒       
不错

ps:关于PagedCollectionView ,可以看我这篇文章Silverlight中的PagedCollectionView ,也许会有些帮助

   回复   引用   查看    
#14楼 [ 楼主]2009-12-10 18:17 | good man       

引用BillGan:你还没解决你老板的问题哦,这个问题完了,下个问题来了啊。虽然文字是转换过来了,但是你点击分组行后,再展开,下面的分组行就显原型了呢,又出现列名了。刚好项目版本升级,遇到这个问题,呵呵。

应该不会这个问题的

   回复   引用   查看    
#15楼 2009-12-16 23:45 | Arthas-Cui       
上次碰到这种问题的时候
我一偷懒, 把属性“Name”直接改成中文的“姓名”了。
于是用中文敲代码。。。

居然一切顺利~

有点困, 不晓得是不是看对了楼主的意思。
我觉得应该是 一个情况吧。

0
0
(请您对文章做出评价)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值