如何在DataGrid里添加一个checkBox控件,以及如何知道那一行被选中。我需要的是应用程序下DataGrid控件的使用方法,不是Web方式下的DataGrid控件,这两个模式的操作不太一样还有一个是如何让DataGrid与一个自定义的结构体变量进行绑定?
struct a
{
int a = 1;
int b = 2;
}ArrayList list = new ArrayList();
list.add(new a());
list.add(new a());
list.add(new a());在dataGrid里有两列
1 2
1 2
1 2
这样的现实

解决方案 »

  1.   

    把结构体转化为表行么?
    DataTable mytable=new  DataTable();
    DataRow  myrow=new DataRow();
      

  2.   

    1、添加一个DataGridBoolColumn,详见MSDN
    2、试一下下面的可不可以(我没有测试过):
    a[] array = new a[10];a[0] = new a(...);
    ...
    a[9] = new a(...);dataGrid.DataSource = array;
      

  3.   

    我把事情想得复杂了一些,只是设置了DataTable.Columns的type为bool类型,就可以满足我的需要来,不过第二问题还没有解决,楼上的方法我试过,得到的只是array的类名字而已
    struct a
    {
    int a = 1;
    int b = 2;
    }class b
    {
       a aa = new aa
    }如果要显示的类有多个层次,如class b好像更加难转换
      

  4.   

    http://snowlove67.cnblogs.com/
    这里有一种方法,可读性比较好的,不过要自己定义表格样式
      

  5.   

    第二个问题,还是构造成DataTable然后绑定吧,直接绑定,似乎没什么好办法
      

  6.   

    设置boolean列,就行,
    http://blog.csdn.net/zhzuo/archive/2004/05/31/22036.aspx
    选中行数据的获取
    如果DataGrid绑定的是DataView,
    DataRowView drv = (DataRowView)this.BindingContext[this.ds,this.ds.Tables[0].TableName].Current;
    //如果绑定的是DataTable
    //DataRow dw = (DataRow)this.BindingContext[this.dataGrid1.DataSource,this.dataGrid1.Memeber].Current;
    获取到drv就可以改数据,
    DataRow dw = drv.Row; // 得到DataRow,
    DataTable dt = dw.Table;//得到DataTable
    DataSet ds = dt.DataSet;
      

  7.   


    class b
    {
    }
    到显示是不是要知己写代码构造一个DataTable?有没有简单的方法?