页面代码

  1.        <TextBlock>
  2. <CheckBox Name="cbAllCreate" Click="CbAllCreate_Click">All</CheckBox>
  3. <CheckBox Name="cbInverseCreate" Click="CbInverseCreate_Click">Inverse</CheckBox>
  4. </TextBlock>
  5. <DataGrid Name="dgCreateTable" AutoGenerateColumns="False" VerticalScrollBarVisibility="Visible" Height="210" EnableRowVirtualization="False">
  6. <DataGrid.Columns>
  7. <DataGridCheckBoxColumn Header="Chose" ></DataGridCheckBoxColumn>
  8. <DataGridTextColumn Header="Name" Binding="{Binding}" IsReadOnly="True"></DataGridTextColumn>
  9. </DataGrid.Columns>
  10. </DataGrid>

注:如果不加 EnableRowVirtualization="False"  全选反选会有遗漏的情况,所以一定要加上。

代码  

  1.     /// <summary>
  2. /// 全选
  3. /// </summary>
  4. /// <param name="sender"></param>
  5. /// <param name="e"></param>
  6. private void CbAllCreate_Click(object sender, RoutedEventArgs e)
  7. {
  8. CbAll(dgCreateTable, cbAllCreate);
  9.  
  10. }
  11. /// <summary>
  12. /// 反选
  13. /// </summary>
  14. /// <param name="sender"></param>
  15. /// <param name="e"></param>
  16. private void CbInverseCreate_Click(object sender, RoutedEventArgs e)
  17. {
  18. Inverse(dgCreateTable, cbInverseCreate);
  19. }
  20.     /// <summary>
  21. /// 全选
  22. /// </summary>
  23. /// <param name="dg"></param>
  24. /// <param name="cb"></param>
  25. void CbAll(DataGrid dg, CheckBox cb)
  26. {
  27. dg.IsEnabled = cb.IsChecked != true;
  28.  
  29. for (int i = ; i < dg.Items.Count; i++)
  30. {
  31. DataGridRow neddrow = (DataGridRow)dg.ItemContainerGenerator.ContainerFromIndex(i);
  32. //获取该行的某列
  33. if (neddrow != null)
  34. {
  35. FrameworkElement objElement = dg.Columns[].GetCellContent(neddrow);
  36. if (objElement != null)
  37. {
  38. CheckBox objChk = (CheckBox)objElement;
  39. objChk.IsChecked = cb.IsChecked;
  40. }
  41. }
  42. }
  43. }
  44. /// <summary>
  45. /// 反选
  46. /// </summary>
  47. /// <param name="dg"></param>
  48. /// <param name="cb"></param>
  49. void Inverse(DataGrid dg, CheckBox cb)
  50. {
  51. // cb.IsChecked = false;
  52. for (int i = ; i < dg.Items.Count; i++)
  53. {
  54. DataGridRow neddrow = (DataGridRow)dg.ItemContainerGenerator.ContainerFromIndex(i);
  55. //获取该行的某列
  56. if (neddrow != null)
  57. {
  58. FrameworkElement objElement = dg.Columns[].GetCellContent(neddrow);
  59. if (objElement != null)
  60. {
  61. CheckBox objChk = (CheckBox)objElement;
  62. objChk.IsChecked = !objChk.IsChecked;
  63. }
  64. }
  65. }
  66. }

获取datagrid中选中的行

  1. List<string> GetDataGridList(DataGrid dg)
  2. {
  3. List<string> list = new List<string>();
  4. for (int i = ; i < dg.Items.Count; i++)
  5. {
  6. DataGridRow neddrow = (DataGridRow)dg.ItemContainerGenerator.ContainerFromIndex(i);
  7. //获取该行的某列
  8. if (neddrow == null)
  9. continue;
  10. FrameworkElement objElement = dg.Columns[].GetCellContent(neddrow);
  11. if (objElement == null)
  12. continue;
  13.  
  14. CheckBox objChk = (CheckBox)objElement;
  15. if (objChk.IsChecked != true)
  16. continue;
  17.  
  18. var obj = dg.Columns[].GetCellContent(neddrow);
  19. if (obj == null)
  20. continue;
  21. var tb = (TextBlock)obj;
  22. if (!string.IsNullOrEmpty(tb.Text))
  23. {
  24. list.Add(tb.Text);
  25. }
  26. }
  27. return list;
  28. }

三、WPF 全选,反选,以及获取选中行的更多相关文章

  1. ----Juquery复选框全选反选及获取选中值Value

    --获取选中值 var pList = ""; $("[name='ckdProd']").each(function () { if ($(this).is( ...

  2. 基于JQ的多选/全选/反选及获取选中的值

    <!-- author:青芒 --> <!DOCTYPE html> <html lang="en"> <head> <met ...

  3. checkbox、全选反选,获取值

    <input id="Chk_All" onclick="CheckAll()" type="checkbox" /> < ...

  4. JQuery 全选 反选 获取Table 中指定td的元素值

    //全选 function initTableCheckbox() { var $thr = $('table thead tr'); var $checkAllTh = $('<th>& ...

  5. jquery实现全选、全不选、反选、获取选中的所有值总结

    HTML 我们的页面上有一个歌曲列表,列出多行歌曲名称,并匹配复选框供用户选择,并且在列表下方有一排操作按钮. <!doctype html> <html> <head& ...

  6. 全选,反选,获取值ajax提交

    //必须先加载jquery //加载 弹出框插件 artdialog http://www.planeart.cn/demo/artDialog/ /****全选反选*开始**/ $(document ...

  7. jQuery实现的全选、反选和获取当前所有选中的值功能

    链接: jQuery实现的全选.反选和获取当前所有选中的值功能 <ul id="list"> <li><label><input type ...

  8. jQuery 实现复选框全选、反选及获取选中的值

    实现复选框全选,反选及获取选中的值: 代码如下: <!doctype html> <html lang="en"> <head> <met ...

  9. jQuery之标签操作和返回顶部、登录验证、全选反选、克隆示例

    一.样式操作 1.JQ中的样式类 somenode.addClass();// 添加指定的CSS类名. somenode.removeClass();// 移除指定的CSS类名. somenode.h ...

随机推荐

  1. LeetCode-2. Add Two Numbers(链表实现数字相加)

    1.题目描述 You are given two non-empty linked lists representing two non-negative integers. The digits a ...

  2. PHP在 win7 64位 旗舰版 报错 Call to undefined function curl_init()

    代码在ubuntu下无缝运行OK 转到我的win7 64位 期间 学习机上 报错: Call to undefined function curl_init() 因为用到curl 远程抓取数据. 所以 ...

  3. sql在insert时判断有无唯一性冲突

    sql在insert时判断有无唯一性冲突,存在相同主键或唯一索引,则不创建 INSERT INTO table(field1, field2, fieldn) SELECT 'field1', 'fi ...

  4. 基于angularJS的表单验证练习

    今天看了一下angularJS的表单验证,看的有点云里雾里(也有可能是雾霾吸多了),于是做了一个小练习来巩固一下. html: <div ng-controller="Aaa" ...

  5. 【转载】log4j详解使用

    log4j详解 日志论    在应用程序中输出日志有有三个目的:(1)监视代码中变量的变化情况,把数据周期性地记录到文件中供其他应用进行统计分析工作. (2)跟踪代码运行进轨迹,作为日后审计的依据.  ...

  6. dip,px,sp区别及使用场景

    1.区别 dip(device independent pixels)——设备独立像素:这个和设备硬件有关,一般哦我们为了支持WCGA.HVGA和QVGA推荐使用这个,不依赖于像素.等同于dp. px ...

  7. Go语言学习笔记二: 变量

    Go语言学习笔记二: 变量 今天又学了一招如何查看go的版本的命令:go version.另外上一个笔记中的代码还可以使用go run hello.go来运行,只是这种方式不会生成exe文件. 定义变 ...

  8. 【JVM调优系列】----CPU过高的分析与解决方案

    1.首先通过top命令查询当前进程所占cpu的一个比重

  9. IDEA 启动项目,tomcat中配置的虚拟路径无法使用

    有时候,使用idea启动项目,非动静分离项目,直接根据图片url地址显示图片,会发现图片无法显示,tomcat中配置的虚拟路径无法使用,这时候需要配置idea.选择路径,然后给与一个访问名就行了.

  10. 重温js基础部分

    临近面试,因此打算回过头来巩固一下js的一些基础部分,同时也是为了记录自己的一些比较薄弱的点. 1.typeof操作符 typeof返回一个基本数据类型,包括number,string,boolean ...