三、WPF 全选,反选,以及获取选中行
页面代码

<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 全选,反选,以及获取选中行的更多相关文章
- ----Juquery复选框全选反选及获取选中值Value
--获取选中值 var pList = ""; $("[name='ckdProd']").each(function () { if ($(this).is( ...
- 基于JQ的多选/全选/反选及获取选中的值
<!-- author:青芒 --> <!DOCTYPE html> <html lang="en"> <head> <met ...
- checkbox、全选反选,获取值
<input id="Chk_All" onclick="CheckAll()" type="checkbox" /> < ...
- JQuery 全选 反选 获取Table 中指定td的元素值
//全选 function initTableCheckbox() { var $thr = $('table thead tr'); var $checkAllTh = $('<th>& ...
- jquery实现全选、全不选、反选、获取选中的所有值总结
HTML 我们的页面上有一个歌曲列表,列出多行歌曲名称,并匹配复选框供用户选择,并且在列表下方有一排操作按钮. <!doctype html> <html> <head& ...
- 全选,反选,获取值ajax提交
//必须先加载jquery //加载 弹出框插件 artdialog http://www.planeart.cn/demo/artDialog/ /****全选反选*开始**/ $(document ...
- jQuery实现的全选、反选和获取当前所有选中的值功能
链接: jQuery实现的全选.反选和获取当前所有选中的值功能 <ul id="list"> <li><label><input type ...
- jQuery 实现复选框全选、反选及获取选中的值
实现复选框全选,反选及获取选中的值: 代码如下: <!doctype html> <html lang="en"> <head> <met ...
- jQuery之标签操作和返回顶部、登录验证、全选反选、克隆示例
一.样式操作 1.JQ中的样式类 somenode.addClass();// 添加指定的CSS类名. somenode.removeClass();// 移除指定的CSS类名. somenode.h ...
随机推荐
- mssql 注入
注入查阅 .返回的是连接的数据库名 .作用是获取连接用户名 .将数据库备份到Web目录下面 ;backup database 数据库名 to disk='c:\inetpub\wwwroot\1.db ...
- WindowsServer2008安装IIS相关服务
控制面板->程序->打开或关闭Windows功能 添加角色,选择IIS服务器,选择以下角色服务,如果添加过就选择添加角色服务 如果出现500错误,这个跟程序没有多大关系,可以试一下以下操作 ...
- 多线程编程(三)-CountDownLatch的使用
CountDownLatch的介绍 类CountDownLatch是同步功能得一个辅助类,使用效果就是给定一个计数,当使用CountDownLatch类的线程判断计数不为0时,则呈wait状态,如果是 ...
- 在超链接href中实现form的提交
<form name="form1" method="post" action=""> <div class=" ...
- Rechnernetz
1.Der Aufbau des Internets 1.1 Randabschnitt Er besteht aus Rechner,der mit Internet verbunden ist.D ...
- iOS开源项目周报0316
由OpenDigg 出品的iOS开源项目周报第十二期来啦.我们的iOS开源周报集合了OpenDigg一周来新收录的优质的iOS开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等.GodEye ...
- [转]MONTHS_BETWEEN Function - Oracle to SQL Server Migration
本文转自:http://www.sqlines.com/oracle-to-sql-server/months_between In Oracle, MONTHS_BETWEEN(date1, dat ...
- Java中用双缓冲技术消除闪烁
在Java编写具有连贯变化的窗口程序时,通常的办法是在子类中覆盖父类的paint(Graphics)方法,在方法中使用GUI函数实现窗口重绘的过程.连贯变换的窗口会不断地调用update(Graphi ...
- c#尽量使用条件属性(Conditional Attribute)
至此我们应该对Attribute属性大体了解了.下面来看看条件属性(Conditional Attribute)到底是怎么回事. 1 [Conditional("DEBUG")] ...
- 武汉邀请赛 Key Logger 双向链表
Key Logger Time Limit: 3000ms Case Time Limit: 3000ms Memory Limit: 65536KB 64-bit integer IO form ...