前台绑定
  1. <DataGrid.Columns>
  2. <DataGridTemplateColumn >
  3. <DataGridTemplateColumn.HeaderTemplate>
  4. <DataTemplate>
  5. <CheckBox Click="HeaderCellLoad" Content="全选" IsChecked="False" Unchecked="UnChoice_Checked" Checked="Choice_Checked"></CheckBox>
  6. </DataTemplate>
  7. </DataGridTemplateColumn.HeaderTemplate>
  8. <DataGridTemplateColumn.CellTemplate>
  9. <DataTemplate>
  10. <CheckBox Click="checkbox_checked" HorizontalAlignment="Center" x:Name="Choices" IsChecked="{Binding CHOICE, Mode=TwoWay}" VerticalAlignment="Center" />
  11. </DataTemplate>
  12. </DataGridTemplateColumn.CellTemplate>
  13. </DataGridTemplateColumn>
  14. <DataGridTextColumn Header="商品条码" Binding="{Binding commodity_barcode}" Width="20*" HeaderStyle="{StaticResource ColumnHeaderStyle}"/>
  15. <DataGridTextColumn Header="商品名称" Binding="{Binding commodity_name}" Width="18*" HeaderStyle="{StaticResource ColumnHeaderStyle}"/>
  16. <DataGridTextColumn Header="单位" Binding="{Binding commodity_unit}" Width="10*" HeaderStyle="{StaticResource ColumnHeaderStyle}"/>
  17. <DataGridTextColumn Header="规格" Binding="{Binding commodity_rule}" Width="10*" HeaderStyle="{StaticResource ColumnHeaderStyle}"/>
  18. <DataGridTextColumn Header="售价" Binding="{Binding commodity_retailprice}" Width="10*" HeaderStyle="{StaticResource ColumnHeaderStyle}" />
  19. <DataGridTextColumn Header="会员价" Binding="{Binding commodity_memberprice}" Width="10*" HeaderStyle="{StaticResource ColumnHeaderStyle}"/>
  20. <DataGridTemplateColumn Header="操作" Width="10*">
  21. <DataGridTemplateColumn.CellTemplate>
  22. <DataTemplate>
  23. <StackPanel Orientation="Horizontal">
  24. <Button Content="修改" Click="Update_Click" Margin="15,0,5,0" >
  25. <Button.Template>
  26. <ControlTemplate TargetType="Button">
  27. <TextBlock TextDecorations="Underline" Name="btnInput" >
  28. <ContentPresenter />
  29. </TextBlock>
  30. </ControlTemplate>
  31. </Button.Template>
  32. <Button.Style>
  33. <Style TargetType="Button">
  34. <Setter Property="Foreground" Value="Blue" />
  35. <Style.Triggers>
  36. <Trigger Property="IsMouseOver" Value="true">
  37. <Setter Property="Foreground" Value="Red" />
  38. </Trigger>
  39. </Style.Triggers>
  40. </Style>
  41. </Button.Style>
  42. </Button>
  43. <Button Content="删除" Click="Delete_Click" Margin="15,0,5,0">
  44. <Button.Template>
  45. <ControlTemplate TargetType="Button">
  46. <TextBlock TextDecorations="Underline" Name="btnCancel" >
  47. <ContentPresenter />
  48. </TextBlock>
  49. </ControlTemplate>
  50. </Button.Template>
  51. <Button.Style>
  52. <Style TargetType="Button">
  53. <Setter Property="Foreground" Value="Red" />
  54. <Style.Triggers>
  55. <Trigger Property="IsMouseOver" Value="true">
  56. <Setter Property="Foreground" Value="Red" />
  57. </Trigger>
  58. </Style.Triggers>
  59. </Style>
  60. </Button.Style>
  61. </Button>
  62. </StackPanel>
  63. </DataTemplate>
  64. </DataGridTemplateColumn.CellTemplate>
  65. </DataGridTemplateColumn>
  66. </DataGrid.Columns>

后台事件

  1. /// <summary>
  2. /// Checked UnChecked事件
  3. /// </summary>
  4. /// <param name="sender"></param>
  5. /// <param name="e"></param>
  6. private void Choice_Checked(object sender, RoutedEventArgs e)
  7. {
  8. DataTable dt = ((DataView)CommodityData.ItemsSource).Table;
  9. foreach (DataRow row in dt.Rows)
  10. {
  11. row["CHOICE"] = "";
  12. GetCount();
  13. }
  14. }
  15. private void UnChoice_Checked(object sender, RoutedEventArgs e)
  16. {
  17. DataTable dt = ((DataView)CommodityData.ItemsSource).Table;
  18. foreach (DataRow row in dt.Rows)
  19. {
  20. row["CHOICE"] = "";
  21. GetCount();
  22. }
  23. }
  24.  
  25. private void checkbox_checked(object sender, RoutedEventArgs e)
  26. {
  27. //首先获取DataGridTemplateColumn所在列
  28. DataGridTemplateColumn tempColumn = this.CommodityData.Columns[] as DataGridTemplateColumn;
  29. //然后获取DataGridTemplateColumn单元格元素
  30. FrameworkElement element = this.CommodityData.Columns[].GetCellContent(this.CommodityData.Items[CommodityData.SelectedIndex]);
  31. if (element != null)
  32. {
  33. //把单元格元素转换为相应的控件,再从该控件中取值
  34. System.Windows.Controls.CheckBox ck = tempColumn.CellTemplate.FindName("Choices", element) as System.Windows.Controls.CheckBox;
  35. if (ck.IsChecked == true)
  36. {
  37. DataRowView item = CommodityData.Items[CommodityData.SelectedIndex] as DataRowView;
  38. DataRow dr = item.Row;
  39. dr["CHOICE"] = "";
  40. GetCount();
  41. }
  42. else if (ck.IsChecked == false)
  43. {
  44. DataRowView item = CommodityData.Items[CommodityData.SelectedIndex] as DataRowView;
  45. DataRow dr = item.Row;
  46. dr["CHOICE"] = "";
  47. GetCount();
  48. }
  49. }
  50. }

-->

-->

wpf--------------datagrid全选反选 多选进行删除操作 前后台的更多相关文章

  1. JQ实现复选框的全选反选不选

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. Android开发 ---基本UI组件5:监听下拉选项,动态绑定下拉选项、全选/反选,取多选按钮的值,长按事件,长按删除,适配器的使用,提示查询数据,activity控制多按钮

    效果图: 效果描述: 1.当点击 1 按钮后,进入选择城市的页面,会监听到你选中的城市名称:动态为Spinner绑定数据 2.当点击 2 按钮后,进入自动查询数据页面,只要输入首字母,就会动态查找以该 ...

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

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

  4. JavaScript、全选反选-课堂笔记

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. PHP基础班初学心得:用JQ实现表单的全选、反选、取消和删除功能

    摘要: 本人刚参加PHP基础班培训,由于之前毫无基础,分享的心得可能不规范,方法也许也"旁门左道",不能保证质量,只作自己总结学习,也希望能帮助到同样是初学者的朋友们,共同进步. ...

  6. 关于input全选反选恶心的异常情况

    上一篇讲到:第一次点击全选按钮input显示对勾,第二次则不显示,需要用prop来添加checked属性. 但是用prop会出现一个问题,对勾显示,而checked属性不会被添加(比如:$(" ...

  7. jQuery全选/反选checkbox

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. python: jquery实现全选 反选 取消

    引入这个jquery-1.12.4.js jquery实现全选 反选 取消 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitio ...

  9. BootStrapt iCheck表单美化插件使用方法详解(含参数、事件等) 全选 反选

    特色: 1.在不同浏览器(包括ie6+)和设备上都有相同的表现 — 包括 桌面和移动设备 2.支持触摸设备 — iOS.Android.BlackBerry.Windows Phone等系统 4.方便 ...

随机推荐

  1. 紫书 例题 10-8 UVa 1262 (暴力枚举)

    递归一遍遍历所有情况就ok了 #include<cstdio> #include<cstring> #define REP(i, a, b) for(int i = (a); ...

  2. Android向unity发送消息

    有些时候需要Android向unity发送消息,有两种方法实现,一.通过unity再带的消息机制,二.通过注册回调的方式. 一.通过UnityPlayer.UnitySendMessage():方法 ...

  3. Ehcache学习总结(2)--Ehcache整合spring配置

    首先需要的maven依赖为: [html] view plain copy <!--ehcache--> <dependency> <groupId>com.goo ...

  4. Spring Cloud学习笔记【四】断路器Hystrix

    雪崩效应 在微服务架构中通常会有多个服务层调用,基础服务的故障可能会导致级联故障,进而造成整个系统不可用的情况,这种现象被称为服务雪崩效应.服务雪崩效应是一种因 “服务提供者” 的不可用导致 “服务消 ...

  5. /*+parallel(t,4)*/在SQL调优中的重要作用!

    谈谈HINT /*+parallel(t,4)*/在SQL调优中的重要作用! /*+parallel(t,4)*/在大表查询等操作中能够起到良好的效果,基于并行查询要启动并行进程.分配任务与系统资源. ...

  6. ids for this class must be manually assigned before calling save():Xxx

    把Xxx.hbm.xml主键生成策略改成identity

  7. Spring Tool Suit安装virgo server插件、virgo的下载

    virgo-tomcat原先是Spring DM Server,后来转eclipse社区维护 安装教程:http://osgi.com.cn/article/7289514 virgo-tomcat各 ...

  8. Android 中图能够用到的图片处理类 BitmapUtils

    Android在实际开发中非常多时候都要对图片进行一定的处理,这里总结的BitmapUtils 类包含一下几个功能: 1.Android图片倒影, 2.Android图片模糊处理, 3.Android ...

  9. numpy 数据类型与 Python 原生数据类型

    查看 numpy 数据类型和 Python 原生数据类型之间的对应关系: In [51]: dict([(d, type(np.zeros(1,d).tolist()[0])) for d in (n ...

  10. sql阻塞进程查询

    select A.SPID as 被阻塞进程,a.CMD AS 正在执行的操作,b.spid AS 阻塞进程号,b.cmd AS 阻塞进程正在执行的操作 from master..sysprocess ...