c语言实现目录下文件的多选 反选,WPF DataGrid CheckBox 多选 反选 全选

效果图

9507bc40782e3f9fd1751e5c5bcea198.gif

实现此效果的必要关键是

Style+DataTemplate

关键代码:

Click="CheckBox_Checked"

Uid="{Binding id}"

IsChecked="{Binding IsSelect , Mode=TwoWay}">

通过Style中的Setter来引入模板。

模板中则是CheckBox。

这样一来,DataGrid中的数据行的复选框也都可以触发事件了。

那么,在头部中的复选框则是使用修改DataGridCheckBoxColumn.HeaderTemplate来实现头部的复选框。

另外必要说明的是,你可以对绑定类使用INotifyPropertyChanged接口,并   ObservableCollection集合类。

后台的绑定类:

public class TEST : INotifyPropertyChanged

{

public event PropertyChangedEventHandler PropertyChanged;

private bool? isSelect;

public int id { get; set; }

public bool? IsSelect

{

get { return isSelect; }

set

{

isSelect = value; OnChanged(new PropertyChangedEventArgs("IsSelect"));

}

}

protected void OnChanged(PropertyChangedEventArgs arg)//具体方法

{

PropertyChanged?.Invoke(this, arg);

}

}

主要实现代码:

ObservableCollection ts = new ObservableCollection();

public MainWindow()

{

InitializeComponent();

TST.AutoGenerateColumns = false;

TST.CanUserAddRows = false;

for (var i = ; i < ; i++)

{

ts.Add(new TEST() { IsSelect = false, id = i });

}

TST.ItemsSource = ts;

}

private void CheckBox_Checked(object sender, RoutedEventArgs e)

{

var Check = (sender as CheckBox);

var CUID = int.Parse(Check.Uid);

//全选

if (CUID==-)

{

foreach (var item in ts)

item.IsSelect = true;

Check.Uid = "-2";

return;

}

//全否选

if (CUID==-)

{

foreach (var item in ts)

item.IsSelect = false;

Check.Uid = "-1";

return;

}

var IsSelcted = ts[CUID].IsSelect;

ts[CUID].IsSelect = (IsSealed ? false : true);

var IsSelects = from s in ts

where s.IsSelect == true

select s;

if(IsSelects.Count()==)

{

var Text = String.Empty;

foreach (var ITEM in IsSelects)

Text += ITEM.id + " \n";

MessageBox.Show(Text);

}

}

vue实现单选多选反选全选全不选

单选 当我们用v-for渲染一组数据的时候,我们可以带上index以便区分他们我们这里利用这个index来简单地实现单选

Android开发CheckBox控件,全选,反选,取消全选

在Android开发中我们经常会使用CheckBox控件,那么怎么实现CheckBox控件的全选,反选呢 首先布局我们的界面: <?xml version="1.0" enc ...

JQuery实现 checkbox 全选、反选&comma;子checkbox有没选去掉全选

1. 全选的checkbox选中时,子checkbox全部选中.反之,全部不选 2.子checkbox中,只要有没有被选中的,取消全选checkbox的选中 3.子checkbox的数量和子check ...

转载:Bootstrap之表格checkbox复选框全选

转:http://blog.csdn.net/shangmingchao[商明超的博客] 效果图: HTML中无需添加额外的一列来表示复选框,而是由JS完成,所以正常的表格布局就行了: 版权声明:如需 ...

Bootstrap之表格checkbox复选框全选

效果图: HTML中无需添加额外的一列来表示复选框,而是由JS完成,所以正常的表格布局就行了:

复选框全选、全不选和反选的效果实现VIEW&colon;1592

随机推荐

IOS开发--自定义segment控件,方便自定义样式

系统的segment控件太封闭,想换个颜色加个背景太难了,忍不住自己写一个,以备不时之需 这个控件给出了很多自定义属性的设置,用起来还是比较方便的,需要注意的 itemWidth如果不设置,则会按照控 ...

Win7 64位系统 VS2010连接Oracle报错的问题

1,异常现象: TNS无法识别 2,异常分析:VS2010启动调试的时候,出现异常.但是使用IIS作为服务器的时候,是不会出现异常,也就是可以正常访问到数据库,后来分析是由于VS自带服务器ASP.NE ...

让Emeditor支持markdown编辑博客

让Emeditor支持markdown编辑博客 1. 关于高亮显示 2.生成HTML文件并预览 用惯了Emeditor,最近又开始学习用markdown写博客,怎么让Emeditor支持markdow ...

getcomputedstyle&lpar;&rpar;获取border像素差异问题

getComputedStyle()方法返回的是一个CSS样式声明对象--CSSStyleDeclaration对象(与style属性的类型相同),包含当前元素所有最终使用的CSS属性值:

linux mysql重启命令

1.通过rpm包安装的MySQL 1 2 service mysqld restart /etc/inint.d/mysqld start 2.从源码包安装的MySQL 1 2 3 4 // Linu ...

linux系统下Apache日志分割(按天生成文件)

Apache日志按天显示,修改Apache http.conf文件,注释默认的日志文件,修改为下面2行 ErrorLog "| /usr/local/apache/bin/rotatelog ...

react &amp&semi; vue 项目创建的方式

创建reactApp的几种方式: create-react-app filename  适用于npm6及以下. npm init react-app filename 适用于npm6以上. npx c ...

easyui的combobox,自动搜索的下拉框

作者:多来哈米 如图,输入关键字,左匹配检索 HTML代码

Java容器解析系列&lpar;2&rpar; 具体化的第一步——Collection到AbstractCollection

在通向具体化的List,Queue之前,我们需要先了解一下Collection接口和AbstractCollection抽象类,这两个都是处于Collection顶层的存在. Collection接口 ...

poco

源码安装: 1, ./configure --omit=Data/MySQL,Data/ODBC,Zip,Crypto,NetSSL_OpenSSL     --no-samples  --no-te ...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值