WPF DevExpress GridControl TableView 全选 和反选 以及获取选中行的数据

原创 2015年07月07日 19:19:52

XMAl 文件

<Window x:Class="WpfChart.Window4"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window4" Height="550" Width="955" xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid">
    <Grid>
        <dxg:GridControl  AutoGenerateColumns="AddNew" EnableSmartColumnsGeneration="True" HorizontalAlignment="Left" Margin="10,59,0,0" Name="gridControl1" VerticalAlignment="Top" Height="445" Width="738" >
            <dxg:GridControl.Columns >
                <dxg:GridColumn FieldName="IsValid" Header="选中"  VisibleIndex="0" AllowEditing="False" AllowSorting="False" >
                    <dxg:GridColumn.CellTemplate>
                        <DataTemplate>
                            <CheckBox IsChecked="{Binding Data.IsValid}"
                                    HorizontalAlignment="Center" VerticalAlignment="Center" >
                            </CheckBox>
                        </DataTemplate>
                    </dxg:GridColumn.CellTemplate>

                </dxg:GridColumn>
                <dxg:GridColumn FieldName="ID" VisibleIndex="1" />
                <dxg:GridColumn FieldName="Name" VisibleIndex="2" />
                <dxg:GridColumn FieldName="StartDateTime" VisibleIndex="3" />
                <dxg:GridColumn FieldName="EndDateTime" VisibleIndex="4" />
            </dxg:GridControl.Columns>
            <dxg:GridControl.View>
                <dxg:TableView  ShowGroupPanel="False" AllowPerPixelScrolling="True" Name="tableView1" ShowTotalSummary="True" AllowFixedGroups="True" AllowColumnFiltering="False" AllowSorting="False" ShowFixedTotalSummary="True" />
            </dxg:GridControl.View>
        </dxg:GridControl>
        <Button Content="全选" Height="23" HorizontalAlignment="Left" Margin="16,28,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
        <Button Content="选中行信息" Height="23" HorizontalAlignment="Left" Margin="110,28,0,0" Name="button2" VerticalAlignment="Top" Width="75" Click="button2_Click" />
    </Grid>
</Window>

代码文件

   namespace WpfChart
{
    /// <summary>
    /// Window4.xaml 的交互逻辑
    /// </summary>
    public partial class Window4 : Window
    {

        List<Project> data = null;


        public Window4()
        {
            InitializeComponent();
            data = new List<Project>();
            data.Add(new Project(1, "Apple", DateTime.Now, DateTime.Now, true));
            data.Add(new Project(2, "banana", DateTime.Now, DateTime.Now, false));
            data.Add(new Project(3, "orange", DateTime.Now, DateTime.Now, true));
            data.Add(new Project(4, "peach", DateTime.Now, DateTime.Now, false));
            data.Add(new Project(5, "pineapple", DateTime.Now, DateTime.Now, true));
            gridControl1.ItemsSource = data;
            DataContext = data;
            
        }

     

        /// <summary>
        /// 默认全选为false
        /// </summary>
        bool check = false;


        /// <summary>
        /// 全选及反选
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            bool newSelect = !check;
            check = !check;
            for (int i = 0; i < data.ToList().Count; i++)
            {
                int rowHandle = this.gridControl1.GetRowHandleByListIndex(i);
                gridControl1.SetCellValue(rowHandle, "IsValid", newSelect);
            }
        }

        /// <summary>
        /// 获取选中行的信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, RoutedEventArgs e)
        {
            string name = "";
            for (int i = 0; i < data.ToList().Count; i++)
            {
                int rowHandle = this.gridControl1.GetRowHandleByListIndex(i);
                object wholeRowObject = gridControl1.GetRow(rowHandle);
                object rowCheck = gridControl1.GetCellValue(rowHandle, "IsValid");

                bool ifCheck = (bool)rowCheck;
                if (ifCheck)
                {
                    object rowname = gridControl1.GetCellValue(rowHandle, "Name");
                    name += rowname.ToString() + ",";
                }
            }
            MessageBox.Show(name);
        }


      
       
    }

    public class Project
    {
        static int num = 0;
        public int ID { get; set; }
        public string Name { get; set; }
        public DateTime StartDateTime { get; set; }
        public DateTime EndDateTime { get; set; }
        public bool IsValid { get; set; }
        public Project(int id, string name, DateTime startDateTime, DateTime endDateTime ,bool isvalid)
        {
            ID = id;
            Name = name;
            StartDateTime = startDateTime;
            EndDateTime = endDateTime;
            IsValid = isvalid;
        }
    }
}


Dev GridControl 控件checkBox复选框,选中多行(三)

一、GridContorl显示chekbox 设置MultiSelectMode = CheckBoxRowSelect; MultiSelect = True;  二、获取checkBox选中行 ...
  • yb305
  • yb305
  • 2016年08月19日 11:41
  • 4678

GridControl全选和反选

private void btnDel_Click(object sender, EventArgs e) { int OKc = 0; ...
  • DeyuanYangjia1314
  • DeyuanYangjia1314
  • 2016年07月30日 18:06
  • 236

DevExpress中GridControl的属性设置及动态绑定数据和全选取消全选

  • 2010年04月08日 11:21
  • 5KB
  • 下载

DevExpress Gridcontrol 表格头复选框 全选全不选

新建窗体 拖一个Gridcontrol 添加两列 col1,col2 public partial class XtraForm2 : DevExpress.XtraEditors.XtraForm...
  • zhishiheng
  • zhishiheng
  • 2015年01月29日 20:45
  • 4505

GridControl全选功能

 GridControl全选功能 GridView里面有一列定义为CheckEdit,FieldName为isChecked,数据源里面有isChecked属性 /// ...
  • kangqiaoyun
  • kangqiaoyun
  • 2014年05月31日 20:16
  • 4237

GridView实现多选,全选,反选等功能

先看看效果 我这里用到了数据库来储存选择的数据,数据库的简单实用我在前面的博客写过了,这里就不多说了,直接贴代码数据库操作类的代码package com.duanlian.gridviewmulti...
  • dl10210950
  • dl10210950
  • 2017年02月03日 16:16
  • 1932

GridControl应用点滴之选中数据行事件

在很多应用场合下,我们期望选中GridControl中的数据行,通过“选中变化事件”来联动处理后续动作。    GridControl提供有两个事件可供我们处理     1、GridCon...
  • Avan_Lau
  • Avan_Lau
  • 2017年06月21日 15:29
  • 761

devexpress GridControl wpf控件使用

1、设置单元格选择模式SelectionMode           cell 单元格 row行...
  • Metal1
  • Metal1
  • 2017年06月01日 14:51
  • 550

DevExpress的GridControl中自定义列中使用RadioButton在拉动滚动条后数据丢失的解决方法

在DevExpress中使用GridControl,其中有一列需要使用RadioButton,有两个问题,一是RadioButton的数据绑定问题,详见上一篇文章,二是在选中RadioButton后,...
  • luopotaotao
  • luopotaotao
  • 2014年03月14日 10:53
  • 1539

DevExpress.XtraGrid.GridControl控件获取选中行某列的值

int selectedHandle; selectedHandle = this.gridView1.GetSelectedRows()[0]; MessageBox.Show(this.gri...
  • creathly003
  • creathly003
  • 2014年05月28日 09:52
  • 10642
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WPF DevExpress GridControl TableView 全选 和反选 以及获取选中行的数据
举报原因:
原因补充:

(最多只允许输入30个字)