Вставить строку в gridview в DevExpress

Я пытаюсь добавить значение в свой вид сетки, но никогда не вставлялся, но ни один из них не вставлялся, даже удалял «if (gvProcess.IsNewItemRow (rowHandle))» для равной работы, но ни один из них не вставляется.

private void add_new_row(string val1,string val2,string val3,string val4,string val5)
{
    //gvProcess.OptionsBehavior.Editable = true;

    gvProcess.AddNewRow();

    int rowHandle = gvProcess.GetRowHandle(gvProcess.DataRowCount);
    if (gvProcess.IsNewItemRow(rowHandle))
    {
        gvProcess.SetRowCellValue(rowHandle, gvProcess.Columns[0], val1);
        gvProcess.SetRowCellValue(rowHandle, gvProcess.Columns[1], val2);
        gvProcess.SetRowCellValue(rowHandle, gvProcess.Columns[2], val3);
        gvProcess.SetRowCellValue(rowHandle, gvProcess.Columns[3], val4);
        gvProcess.SetRowCellValue(rowHandle, gvProcess.Columns[4], val5);

    }

    gvProcess.UpdateCurrentRow();

    MessageBox.Show("Done");

}

в чем проблема?


person asdzxc    schedule 16.03.2016    source источник
comment
Если какой-либо из ответов помог вам, вы бы отметили его как принятый   -  person Majkl    schedule 19.03.2016


Ответы (2)


Метод ColumnView.AddNewRow поддерживается только для источников данных, реализующих интерфейс System.ComponentModel.IBindingList. В других случаях для добавления новых строк следует использовать методы, предоставляемые вашим источником данных.

Подробнее см. в справочной статье Добавление и удаление записей.

person DmitryG    schedule 16.03.2016

Вместо этого вы можете использовать это >

DataTable dtMain = ((DataTable)gcGrid.DataSource);
DataRow newRow = dtMain.NewRow();
newRow["Column1"] = "";
dtMain.Rows.Add(newRow);

соответственно

        private void add_new_row(string val1, string val2, string val3, string val4, string val5)
        {
          //gcProcess
          if (gcProcess.DataSource != null)
          {
            gcProcess.BeginUpdate();
            DataTable dtMain = ((DataTable)gcProcess.DataSource);
            DataRow newRow = dtMain.NewRow();
            newRow[0] = val1;
            newRow[1] = val2;
            newRow[2] = val3;
            newRow[3] = val4;
            newRow[4] = val5;
            dtMain.Rows.Add(newRow);
            gcProcess.EndUpdate();
          }
        }
person Majkl    schedule 16.03.2016