Silverlight的DataGrid有很多强大之处,其中一个便是排序。

DataGrid指定过ItemsSource之后,通过点击列头就可以实现排序,不用写任何代码。这对我这种懒人来说实在是太爽了。

但是,如果使用了模板列呢?会出什么效果?

果然不行

Age这一列使用了模板,通过TextBlock来显示。代码如下:

            <sdk:DataGrid.Columns>
                <sdk:DataGridTextColumn Header="编号" Binding="{Binding ID}"/>
                <sdk:DataGridTextColumn Header="名字" Binding="{Binding Name}"/>
                <sdk:DataGridTemplateColumn  Header="Age">                     
                    <sdk:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding Age}"/>
                        </DataTemplate>
                    </sdk:DataGridTemplateColumn.CellTemplate>
                </sdk:DataGridTemplateColumn>               
                <sdk:DataGridTextColumn Header="Email" Binding="{Binding Email}"/>
            </sdk:DataGrid.Columns>

无论怎么点击Age都无法排序。

我们有办法,可以使用PagedCollectionView,但是使用之后就不能改变了,除非改变代码,无法像默认的功能一样,通过点击切换排序方式。

还有办法,直接上代码

     <sdk:DataGrid.Columns>
       <sdk:DataGridTextColumn Header="编号" Binding="{Binding ID}"/>
       <sdk:DataGridTextColumn Header="名字" Binding="{Binding Name}"/>
         <sdk:DataGridTemplateColumn CanUserSort="True" SortMemberPath="Age" Header="Age">   
           <sdk:DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                  <TextBlock Text="{Binding Age}"/>
                </DataTemplate>
             </sdk:DataGridTemplateColumn.CellTemplate>
  1       </sdk:DataGridTemplateColumn>               
  11:  <sdk:DataGridTextColumn Header="Email" Binding="{Binding Email}"/>
  12:  </sdk:DataGrid.Columns>

看起来基本上一样,不同之处就是第四行 CanUserSort="True" SortMemberPath="Age"

Silverlight datagrid 排序 (转)的更多相关文章

  1. silverlight DataGrid 显示篇

    silverlight DataGrid 显示篇 分类: Silverlight2012-05-12 21:55 693人阅读 评论(0) 收藏 举报 datagridsilverlightbindi ...

  2. easyUI datagrid 排序

    easyUI datagrid 排序 1.首先设置datagrid属性sortName 2.设置sortOrder 3.设置remoteSort(注:此属性默认为true,如果如果是对本地数据排序必须 ...

  3. 【原创】Silverlight DataGrid对核心控件DataGrid的任意单元格进行获取和设置分析。

    前几天,公司同事有个需求需要对系统中的DataGrid控件的指定单元格(如图,申请人ID)进行禁用设置,尝试了很多次总是 整行整列的 禁用 没实现效果. 网上资料较少,没找到解决措施. 尽管silve ...

  4. 【原创】有关Silverlight DataGrid双击事件的分析 完整分析 代码与示例

    公司项目用的silverlight,而且silverlight一些技术 资料比较少.所以分享出来 给大家参考参考. 有关Silverlight中DataGrid 双击事件 的代码 如下: 1. 前台x ...

  5. DataGrid排序

    DataGrid是ASP.NET中非常重要的一个控件.它能方便的让我们实现编辑.排序功能:但是排序功能默认的是升序(ASC),能不能让DataGrid同时实现升降序排列呢?这篇文章将给你一个比较好的解 ...

  6. silverlight datagrid绑定匿名类

    原文 http://www.cnblogs.com/luweis/archive/2011/10/21/2220587.html 刚开始遇到的一个问题是这样的,我有一个datagrid,根据不同的条件 ...

  7. Silverlight DataGrid自适应数据

    silverlight的DataGrid如果改成fill模式 那么当数据超长也不会出现横向滚动条 如果改成按单元格模式 如果数据较短又会出现空白的地方 所以我自己写了个算法 目前实现了以list为数据 ...

  8. [转]silverlight Datagrid 行上增加ToolTip

    有两种办法: 1. 直接在后台处理在数据绑定后 ,注册LoadingRow 事件this.DataGrid.LoadingRow += new EventHandler<DataGridRowE ...

  9. Silverlight DataGrid数据行背景颜色控制

    sdk:DataGrid数据绑定后,部分特殊的行需要用不同的背景颜色来显示.(注册DataGrid的LoadingRow事件) private void radGridView_LoadingRow( ...

随机推荐

  1. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)--MySQL错误

    MySQL错误整理: 错误一: ERROR (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/my ...

  2. mysql优化--触发器和auto_increment

    1.触发器: 触发器的好处:做数据回收站或者做数据关联删除 触发器的坏处:给数据库增加压力,增删改变慢,不利与mysql移到其他数据库会出问题. 触发器建立:只能增删改,查不能建立. 例子1:创建一个 ...

  3. Mixing ASP.NET and MVC routing

    Here is the solution I settled on. I installed the NuGet Microsoft.AspNet.FriendlyUrls package. Then ...

  4. Python之路【第七篇续】:进程、线程、协程

    Socket Server模块 SocketServer内部使用 IO多路复用 以及 “多线程” 和 “多进程” ,从而实现并发处理多个客户端请求的Socket服务端.即:每个客户端请求连接到服务器时 ...

  5. 整理一下Entity Framework的查询

    整理一下Entity Framework的查询 2012-08-30 13:41:59 标签:Entity Framework 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信 ...

  6. redis使用watch完成秒杀抢购功能(转)

    redis使用watch完成秒杀抢购功能: 使用redis中两个key完成秒杀抢购功能,mywatchkey用于存储抢购数量和mywatchlist用户存储抢购列表. 它的优点如下: 1. 首先选用内 ...

  7. application

    改变全局application到页面的参数 添加参数:HttpServletRequest req 使用req.getSession().getServletContext().setAttribut ...

  8. phpStudy 创建多个站点,绑定域名

    默认情况下,phpStudy 的站点根目录是在它自己的WWW目录,比如 F:\phpStudy\WWW,访问的地址可以是 http://127.0.0.1/   或 http://localhost/ ...

  9. Nginx for Windows 使用笔记

    一.常见启动错误 1. "No mapping for the Unicode character exists in the target multi-byte code page&quo ...

  10. js字符串转成数字的三种方法

    js读取的html代码中获得的值 ,统统是以字符串的形式呈现的,为了方便我们后面对数据的操作,有时候我们有必要进行转换一下. 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转 ...