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>

      

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

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

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

  • 相关阅读:
    为什么 Linux Mint 比 Ubuntu好?
    未将对象引用设置到对象的实例--可能出现的问题总结
    Java的位运算符具体解释实例——与(&amp;)、非(~)、或(|)、异或(^)
    openldap---ldapsearch使用
    HDU1342 Lotto 【深搜】
    XMPP协议的原理介绍
    百度究竟是哪国的公司
    DWZ使用笔记
    利用Excel批量高速发送电子邮件
    文法分析
  • 原文地址:https://www.cnblogs.com/heshuai/p/2176665.html
Copyright © 2011-2022 走看看