zoukankan      html  css  js  c++  java
  • DataGridTemplateColumn排序

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

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

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

    果然不行

    image

    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,但是使用之后就不能改变了,除非改变代码,无法像默认的功能一样,通过点击切换排序方式。

    还有办法,直接上代码

       1:  <sdk:DataGrid.Columns>
       2:    <sdk:DataGridTextColumn Header="编号" Binding="{Binding ID}"/>
       3:    <sdk:DataGridTextColumn Header="名字" Binding="{Binding Name}"/>
       4:    <sdk:DataGridTemplateColumn CanUserSort="True" SortMemberPath="Age" Header="Age">   
       5:      <sdk:DataGridTemplateColumn.CellTemplate>
       6:        <DataTemplate>
       7:          <TextBlock Text="{Binding Age}"/>
       8:        </DataTemplate>
       9:    </sdk:DataGridTemplateColumn.CellTemplate>
      10:    </sdk:DataGridTemplateColumn>               
      11:  <sdk:DataGridTextColumn Header="Email" Binding="{Binding Email}"/>
      12:  </sdk:DataGrid.Columns>

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

  • 相关阅读:
    jdbc详解(三)
    超文本传输协议-HTTP/1.1
    前人栽树,后人擦屁股
    JAVA 读取计算机中相关信息
    POJ 1836-Alignment(DP/LIS变形)
    【Android】自己定义控件实现可滑动的开关(switch)
    加深理解UIView,UIResponder,UIController
    Fuel4d 2.3 公布
    Android中使用IntentService运行后台任务
    POJ2762 Going from u to v or from v to u? 强连通+缩点
  • 原文地址:https://www.cnblogs.com/lyghost/p/2744506.html
Copyright © 2011-2022 走看看