zoukankan      html  css  js  c++  java
  • Silverlight中DataGrid的全选

    最近的项目中在DataGrid中需要使用全选。

    于是参考《silverlight中CheckBox在DataGrid的全选/取消》这篇文章给实现了。经过简单的测试之后就正式使用了。

    一直也没有出现问题。

    但是,今天同事说这一块有问题。很是惊讶,这么几个月了,一直都正常,怎么就出问题了呢?于是开始检查。问题很奇怪,上面提到的文章11楼也出现这个问题了。

    经过反复确认及排查。终于发现问题所在了:DataGrid的动态加载(不知道官方说法,暂且这么叫吧),DataGrid每次只加载一屏幕的数据,如果有滚动条,在滚动时再动态的加载数据。

    只要发现原因,问题就好解决了。

    会不会有个属性,可以关闭这个特性?但是我没找到。。。

    最后通过一种变通的方式把这个问题解决了。

    即用ScrollViewer把DataGrid包起来。也就是说不让DataGrid出现滚动条,用ScrollViewer实现滚动效果。

     1         <ScrollViewer Grid.Row="1" >
    2 <sdk:DataGrid x:Name="UserDG" AutoGenerateColumns="False">
    3 <sdk:DataGrid.Columns>
    4 <sdk:DataGridTemplateColumn Header="Id">
    5 <sdk:DataGridTemplateColumn.CellTemplate>
    6 <DataTemplate>
    7 <CheckBox x:Name="cb" Tag="{Binding Id}"/>
    8 </DataTemplate>
    9 </sdk:DataGridTemplateColumn.CellTemplate>
    10 </sdk:DataGridTemplateColumn>
    11 <sdk:DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
    12 <sdk:DataGridTextColumn Header="Age" Binding="{Binding Age}"/>
    13 <sdk:DataGridTextColumn Header="Email" Binding="{Binding Email}"/>
    14 </sdk:DataGrid.Columns>
    15 </sdk:DataGrid>
    16 </ScrollViewer>

      

    当然,这只是一种变通办法。

    还存在一些问题,比如:滚动时,表头也滚动。

    大家有没有更好的办法,分享分享。

  • 相关阅读:
    greta一些简单实用的字符串匹配
    内存管理
    粒子系统
    资源的后台加载
    GRETA正则表达式模板类库
    便利的开发工具log4cpp快速使用指南
    vc/mfc/vs2005下正则表达式源代码编程/微软greta Regular Expressions
    GRETA库在VS 2005环境下的编译经验
    揭开正则表达式的神秘面纱
    greta简单使用
  • 原文地址:https://www.cnblogs.com/heshuai/p/2176665.html
Copyright © 2011-2022 走看看