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>

      

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

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

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

  • 相关阅读:
    flash模拟EEROM
    FATFS_SD卡
    AFIO
    ADC1多通道_DMA_内部温度传感器+内部VREFINT
    QmlBook--Meet Qt 5
    NRF24L01
    MWC飞控V2.3串口通信协议——new Multiwii Serial Protocol
    thread相关http://blog.csdn.net/forwayfarer/article/details/3455130
    comparable与comparator的区别http://blog.csdn.net/mageshuai/article/details/3849143
    ArrayList和LinkedList的区别http://pengcqu.iteye.com/blog/502676
  • 原文地址:https://www.cnblogs.com/heshuai/p/2176665.html
Copyright © 2011-2022 走看看