Silverlight学习笔记二(续)
2008-12-26 11:54:05 来源:WEB开发网上篇中在设置排序标志的时候,需要不停的去刷新,这样做肯定是不行的,所以必须要找到其它的方式。
看了一下关于自定义ColumnHeader的内容,在2.0的测试版本中,可以直接设置Column.Header为某个自定义的控件,但是在正式版中,这个功能被取消了,必须要通过Column.HeaderStyle来设置,动态设置Style还是比较费事的,暂时还没有做好。
所以想了个折中的办法,就是在Header上面手工加上"↑"和"↓"来标示排序的方向。
所要做的就是在MouseDown中修改一下Header.Content
代码如下:
1privatevoiddgData_MouseLeftButtonDown(objectsender,MouseButtonEventArgse)
2 {
3 varu=fromelementinVisualTreeHelper.FindElementsInHostCoordinates(e.GetPosition(null),dgData)
4 whereelementisDataGridColumnHeader
5 selectelement;
6
7 if(u.Count()==1)
8 {
9 //鼠标点击的ColumnHeader
10 DataGridColumnHeaderheader=(DataGridColumnHeader)u.Single();
11 //要排序的字段
12 string_newsort=header.Content.ToString();
13 //清除名称中的↑和↓
14 _newsort=removeSortStateFlag(_newsort);
15 //判断排序方向
16 if(_newsort==sortFiled)
17 dir=dir=="desc"?"asc":"desc";
18 else
19 {
20 //如果新的排序字段和当前的排序字段不一样,则要清楚当前排序字段的排序标志(↑↓)
21 if(sortHeader!=null)
22 sortHeader.Content=removeSortStateFlag(sortHeader.Content.ToString());
23 dir="asc";
24 }
25 sortFiled=_newsort;
26 //加上排序标志
27 header.Content=dir=="asc"?_newsort+"↑":_newsort+"↓";
28 //设置新的排序字段为当前排序字段
29 sortHeader=header;
30 BindGrid();
31 e.Handled=true;
32 }
33 else
34 e.Handled=false;
35 }
Tags:Silverlight 学习 笔记
编辑录入:爽爽 [复制链接] [打 印]- ››学习破解方法来降低无线网络被盗
- ››笔记本蓝屏错误代码0X0000000A故障处理
- ››silverlight全屏显示图片
- ››Silverlight MVVM 模式(一) 切近实战
- ››学习网站日志分析:网站日志分析各项指标
- ››学习:Ylmf OS安装全过程(视频)
- ››学习了SEO可以做哪些事
- ››学习 Linux,101: 保持文件系统的完整性
- ››Silverlight for Windows Phone 7开发系列(1):...
- ››Silverlight for Windows Phone 7开发系列(2):...
- ››Silverlight for Windows Phone 7开发系列(3):...
- ››Silverlight for Windows Phone 7开发系列(4):...
更多精彩
赞助商链接