前台绑定

<DataGrid.Columns><DataGridTemplateColumn ><DataGridTemplateColumn.HeaderTemplate><DataTemplate><CheckBox Click="HeaderCellLoad" Content="全选"   IsChecked="False" Unchecked="UnChoice_Checked" Checked="Choice_Checked"></CheckBox></DataTemplate></DataGridTemplateColumn.HeaderTemplate><DataGridTemplateColumn.CellTemplate><DataTemplate><CheckBox Click="checkbox_checked" HorizontalAlignment="Center" x:Name="Choices"  IsChecked="{Binding CHOICE, Mode=TwoWay}" VerticalAlignment="Center" /></DataTemplate></DataGridTemplateColumn.CellTemplate>  </DataGridTemplateColumn>  <DataGridTextColumn Header="商品条码" Binding="{Binding commodity_barcode}" Width="20*" HeaderStyle="{StaticResource ColumnHeaderStyle}"/><DataGridTextColumn Header="商品名称" Binding="{Binding commodity_name}" Width="18*" HeaderStyle="{StaticResource ColumnHeaderStyle}"/><DataGridTextColumn Header="单位" Binding="{Binding commodity_unit}" Width="10*" HeaderStyle="{StaticResource ColumnHeaderStyle}"/><DataGridTextColumn Header="规格" Binding="{Binding commodity_rule}" Width="10*" HeaderStyle="{StaticResource ColumnHeaderStyle}"/><DataGridTextColumn Header="售价" Binding="{Binding commodity_retailprice}" Width="10*" HeaderStyle="{StaticResource ColumnHeaderStyle}" /><DataGridTextColumn Header="会员价" Binding="{Binding commodity_memberprice}" Width="10*" HeaderStyle="{StaticResource ColumnHeaderStyle}"/><DataGridTemplateColumn Header="操作" Width="10*"><DataGridTemplateColumn.CellTemplate><DataTemplate>  <StackPanel Orientation="Horizontal"><Button Content="修改"  Click="Update_Click" Margin="15,0,5,0" ><Button.Template><ControlTemplate TargetType="Button"><TextBlock TextDecorations="Underline" Name="btnInput" >  <ContentPresenter /></TextBlock></ControlTemplate></Button.Template><Button.Style><Style TargetType="Button"><Setter Property="Foreground" Value="Blue" /><Style.Triggers><Trigger Property="IsMouseOver" Value="true"><Setter Property="Foreground" Value="Red" /></Trigger></Style.Triggers></Style></Button.Style></Button><Button Content="删除" Click="Delete_Click" Margin="15,0,5,0"><Button.Template><ControlTemplate TargetType="Button"><TextBlock TextDecorations="Underline" Name="btnCancel" >  <ContentPresenter /></TextBlock></ControlTemplate></Button.Template><Button.Style><Style TargetType="Button"><Setter Property="Foreground" Value="Red" /><Style.Triggers><Trigger Property="IsMouseOver" Value="true"><Setter Property="Foreground" Value="Red" /></Trigger></Style.Triggers></Style></Button.Style></Button></StackPanel></DataTemplate></DataGridTemplateColumn.CellTemplate></DataGridTemplateColumn></DataGrid.Columns> 

View Code

后台事件

    /// <summary>/// Checked UnChecked事件/// </summary>/// <param name="sender"></param>/// <param name="e"></param> private void Choice_Checked(object sender, RoutedEventArgs e){DataTable dt = ((DataView)CommodityData.ItemsSource).Table;foreach (DataRow row in dt.Rows){row["CHOICE"] = "1";GetCount();}}private void UnChoice_Checked(object sender, RoutedEventArgs e){DataTable dt = ((DataView)CommodityData.ItemsSource).Table;foreach (DataRow row in dt.Rows){row["CHOICE"] = "0";GetCount();}}private void checkbox_checked(object sender, RoutedEventArgs e){//首先获取DataGridTemplateColumn所在列     DataGridTemplateColumn tempColumn = this.CommodityData.Columns[0] as DataGridTemplateColumn;//然后获取DataGridTemplateColumn单元格元素FrameworkElement element = this.CommodityData.Columns[0].GetCellContent(this.CommodityData.Items[CommodityData.SelectedIndex]);if (element != null){//把单元格元素转换为相应的控件,再从该控件中取值System.Windows.Controls.CheckBox ck = tempColumn.CellTemplate.FindName("Choices", element) as System.Windows.Controls.CheckBox; if (ck.IsChecked == true){DataRowView item = CommodityData.Items[CommodityData.SelectedIndex] as DataRowView;DataRow dr = item.Row;dr["CHOICE"] = "1";GetCount();}else if (ck.IsChecked == false){DataRowView item = CommodityData.Items[CommodityData.SelectedIndex] as DataRowView;DataRow dr = item.Row;dr["CHOICE"] = "0";GetCount();} }}

View Code

转载于:https://www.cnblogs.com/wangzhe688/p/9323772.html

wpf--------------datagrid全选反选 多选进行删除操作 前后台相关推荐

  1. js复选框之全选反选不选

    今日分享:纯js复选框之全选&&反选&&不选 想要了解其用法,首先先得了解它们各自的意思 全选:全部都选中 反选:选中的部分取消,没选中的部分勾选上 不选:全部取消勾选 ...

  2. [JS] checkbox 选中/全选/反选/不选

    知识点: 1. jQuery:  prop() 和 attr() attr('checked')   返回string类型 prop('checked') 返回Boolean类型 结论:$(" ...

  3. jQuery如何动态删除TR,input按钮删除本行记录,checkbox全选反选

    checkbox 全选反选 1: var i = 1; 2: function CheckAllTeacher() { 3: if (i % 2 == 1) { 4: i++; 5: $(" ...

  4. html实现全选 反选,jquery实现全选、不选、反选的两种方法

    在取复选框checkbox的属性checked属性值时,发现一个问题,就是当用attr取值时,真的为"checked",假的为"undefined";当用pro ...

  5. JSjQuery全选反选父项子项联动多选框

    全选反选父项子项联动多选框 js代码:<!DOCTYPE html><html lang="en"><head> <meta charse ...

  6. jQuery全选反选实例

    1. $('#tb:checkbox').each(function(){ 每次都会执行 全选-取消操作,注意$('#tb :checkbox').prop('checked',true); tb后面 ...

  7. Jquery实现 全选反选

    Jquery实现 全选反选 <!DOCTYPE html> <html lang="en"><head><meta charset=&qu ...

  8. JS 原生实现复选框全选反选功能

    ** JS 原生实现复选框全选反选功能 ** 按钮功能实现思路: 全选按钮: 直接将全选按钮的状态赋值给每一个 复选框. 复选框:只有当所有的复选框选中时,全选按钮才能选中,所以每当复选框每点击一次就 ...

  9. WPF DataGrid 如何将被选中行带到视野中

    WPF DataGrid 如何将被选中行带到视野中 目录 前言 准备工作 方法一 方法二 总结 独立观察员 2021 年 12 月 11 日 前言 在 WPF 开发中,显示表格一般使用 DataGri ...

最新文章

  1. VIT pytorch源码
  2. AcWing算法基础课 Level-2 第二讲 数据结构
  3. ai包装插件_找AI插件很费劲,一次给你66款AI插件合集!每一款都是设计师常用...
  4. kafka rebalance 部分分区没有owner
  5. AI人才缺口达百万:做了AI,就一定能拿到高薪offer吗?
  6. svn文件大小类型限制,提交必须加多少字的说明
  7. Java福尔摩斯的约会大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧 3485djDkxh4hhGE 2984akDfkkkkggEdsb shgsfdk dHyscvnm”。大侦探很快就明白了
  8. tp3.2部署在nginx主页正常,其他页面404问题解决方式
  9. 多线程并发思考--文件加锁
  10. Unity3D一个全面整合的专业游戏引擎
  11. CS 1.6 服务器信息读取
  12. fastjson 属性大写问题
  13. Linux运维笔记-日常操作命令总结(1)
  14. Java锁的种类以及辨析(四):可重入锁
  15. 许路平:Gvoice千万在语音输入的那些事
  16. WordPress 和继承者们
  17. 图像处理--OpenCV实现图像加噪与滤波
  18. tl-wr700n拔号服务器无响应,无线路由器连不上网,总是拨号失败,服务器无响应,日志如下:...
  19. 修改mq服务器ip,将外部IP地址绑定到Rabbit MQ服务器
  20. 记一次让自家旧主板支持M2接口固态硬盘的折腾记录

热门文章

  1. import javax.servlet 出错(真的很管用)
  2. [转载]freeSwitch基本操作(转载)
  3. UI之UI View--属性及用法
  4. CASSINI源代码分析
  5. android之数据存储,Android数据存储之File
  6. conda 命令和创建tensorflow环境
  7. spyder清除控制台命令
  8. PHP生成PDF并转换成图片爬过的坑
  9. npm 加入 TC39 委员会,参与定制 JavaScript 标准
  10. Aspose.Pdf 系列组件介绍