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>

      

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

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

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

  • 相关阅读:
    最长公共子序列解题报告
    数列操作问题
    数字金字塔解题报告
    Formiko总结整数十进制转换二进制原理
    程序设计竞赛问题类型
    vue 的生命周期
    小程序 瀑布流布局(图-视频)
    JavaScript语言里判断一个整数是偶数还是奇数,并输出判断结果
    JavaScript语言里判断一个整数,属于哪个范围:大于0;小于0;等于0
    test
  • 原文地址:https://www.cnblogs.com/heshuai/p/2176665.html
Copyright © 2011-2022 走看看