如有办法,请详细说明,多谢

解决方案 »

  1.   

    全部只读,再放一个Edit等上去
      

  2.   

    public void DrawDataGrid(DataTable myTable, DataGrid myGrid, bool isHiden)
    {
    DataGridTableStyle dts = new DataGridTableStyle();
    int colIndex = myTable.Columns.Count;
    for(int i=0;i<colIndex;i++)
    {
    dtc = new DataGridTextBoxColumn();
    dtc.MappingName = myTable.Columns[i].ColumnName;
    dtc.HeaderText = myTable.Columns[i].ColumnName;
    dtc.NullText = "";
    dtc.Format = "F";
    dtc.Alignment = HorizontalAlignment.Center;
    dts.GridColumnStyles.Add(dtc);
    //将特定列设置为只读
    if(isHiden)
    {
    dts.GridColumnStyles[i].ReadOnly = true;
    dts.GridColumnStyles[0].ReadOnly = false;
    }
    }
    dts.MappingName = myTable.TableName;
    myGrid.TableStyles.Clear();
    myGrid.TableStyles.Add(dts);
    }
    //以上代码实现DataGrid的格式化,比如去掉NULL等。其中dts.GridColumnStyles[i].ReadOnly可以设置哪些列为只读或可读。如果设置行的话,请参考以下代码:
     //-----------数据绑定-------------------
    this.dataGird1.DataSource = ds.Tables[0];
       
    //----------声明一个映射表--------------
    DataGridTableStyle DGRidTable=new DataGridTableStyle();     DGRidTable.MappingName=ds.Tables[0].TableName;     DataGridTextBoxColumn  tb1=new DataGridTextBoxColumn();
    //---------要绑定的数据------------
        tb1.MappingName="ID";
    //-----------表示该行不能进行编辑----
        tb1.ReadOnly=true;
    tb1.HeaderText="编号";

    //---------添加设置类型------------
    DGRidTable.GridColumnStyles.Add(tb1);
    Grid.TableStyles.Add(DGRidTable);