页面代码

       <TextBlock>
<CheckBox Name="cbAllCreate" Click="CbAllCreate_Click">All</CheckBox>
<CheckBox Name="cbInverseCreate" Click="CbInverseCreate_Click">Inverse</CheckBox>
</TextBlock>
<DataGrid Name="dgCreateTable" AutoGenerateColumns="False" VerticalScrollBarVisibility="Visible" Height="210" EnableRowVirtualization="False">
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="Chose" ></DataGridCheckBoxColumn>
<DataGridTextColumn Header="Name" Binding="{Binding}" IsReadOnly="True"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>

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

代码  

      /// <summary>
/// 全选
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void CbAllCreate_Click(object sender, RoutedEventArgs e)
{
CbAll(dgCreateTable, cbAllCreate); }
/// <summary>
/// 反选
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void CbInverseCreate_Click(object sender, RoutedEventArgs e)
{
Inverse(dgCreateTable, cbInverseCreate);
}
    /// <summary>
/// 全选
/// </summary>
/// <param name="dg"></param>
/// <param name="cb"></param>
void CbAll(DataGrid dg, CheckBox cb)
{
dg.IsEnabled = cb.IsChecked != true; for (int i = ; i < dg.Items.Count; i++)
{
DataGridRow neddrow = (DataGridRow)dg.ItemContainerGenerator.ContainerFromIndex(i);
//获取该行的某列
if (neddrow != null)
{
FrameworkElement objElement = dg.Columns[].GetCellContent(neddrow);
if (objElement != null)
{
CheckBox objChk = (CheckBox)objElement;
objChk.IsChecked = cb.IsChecked;
}
}
}
}
/// <summary>
/// 反选
/// </summary>
/// <param name="dg"></param>
/// <param name="cb"></param>
void Inverse(DataGrid dg, CheckBox cb)
{
// cb.IsChecked = false;
for (int i = ; i < dg.Items.Count; i++)
{
DataGridRow neddrow = (DataGridRow)dg.ItemContainerGenerator.ContainerFromIndex(i);
//获取该行的某列
if (neddrow != null)
{
FrameworkElement objElement = dg.Columns[].GetCellContent(neddrow);
if (objElement != null)
{
CheckBox objChk = (CheckBox)objElement;
objChk.IsChecked = !objChk.IsChecked;
}
}
}
}

获取datagrid中选中的行

 List<string> GetDataGridList(DataGrid dg)
{
List<string> list = new List<string>();
for (int i = ; i < dg.Items.Count; i++)
{
DataGridRow neddrow = (DataGridRow)dg.ItemContainerGenerator.ContainerFromIndex(i);
//获取该行的某列
if (neddrow == null)
continue;
FrameworkElement objElement = dg.Columns[].GetCellContent(neddrow);
if (objElement == null)
continue; CheckBox objChk = (CheckBox)objElement;
if (objChk.IsChecked != true)
continue; var obj = dg.Columns[].GetCellContent(neddrow);
if (obj == null)
continue;
var tb = (TextBlock)obj;
if (!string.IsNullOrEmpty(tb.Text))
{
list.Add(tb.Text);
}
}
return list;
}

三、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. php 如何匹配中文或英文姓名

    这几天在做项目的用户注册时,想限制用户使用一些比较奇怪的字符作为名字,即使用中文或者英文名字. 查了一些资料,例如:网友挥得更高的百度空间 写下了以下函数. //验证名字和密码 if (!preg_m ...

  2. ES5支持的方法

    ES5的支持的方法 concat() 把元素衔接到数组中. every() 测试断言函数是否对每个数组元素都为真 filter() 返回满足断言函数的数组元素 forEach() 为数组的每一个元素调 ...

  3. 关于js语法(运算中出现无限大的问题)本身的错误的解决方案

    错误原因: 一是 JavaScript 浮点数计算的 Bug, 另一个是和计算机最终转换成二进制计算有关系 解决方案: 第一种就是利用JavaScript 的toFixed(n) 方法,直接获取N 位 ...

  4. EntityFrameworkCode 操作MySql 相关问题

    近段时间,由于工作原因,使用到了EntityFrameworkCore 操作MySql数据库,使用中遇到一些问题,特此记录 系统环境 Win10 1805,VS 2017,Framework:Asp. ...

  5. Tomcat源码分析——Session管理分析(下)

    前言 在<TOMCAT源码分析——SESSION管理分析(上)>一文中我介绍了Session.Session管理器,还以StandardManager为例介绍了Session管理器的初始化 ...

  6. 如鹏网学习笔记(六)ADO.Net基础

    ADO.Net基础 一.ADO.Net简介 1,程序要通过SQL语句自动化的操作数据库,必须要用一个类库, 类库要提供execute("insert into ...")/exec ...

  7. JS实现一位数显示为两位

    使用js脚本实现页面一位数字显示为两位,不足两位前面加“0”. function fix(num, length) { return ('' + num).length < length ? ( ...

  8. [PHP] 通用网关接口CGI 的运行原理

    CGI 的运行原理:1.客户端访问某个 URL 地址之后,通过 GET/POST/PUT 等方式提交数据,并通过 HTTP 协议向 Web 服务器发出请求.2.服务器端的 HTTP Daemon(守护 ...

  9. PHP 获取当前类名、方法名、URL地址

      1.PHP获取当前类名.方法名  __CLASS__ 获取当前类名  __FUNCTION__ 当前函数名(confirm)  __METHOD__ 当前方法名 (bankcard::confir ...

  10. 基于easyUI实现登录界面

    此文章是基于 EasyUI+Knockout实现经典表单的查看.编辑 一. 准备工作 1. 点击此下载相关文件,并把文件放到 ims 工程对应的文件夹下 二. 相关文件介绍 1. login.jsp: ...