У меня есть DevExpress.XtraGrid. Я хочу, чтобы пользователь отредактировал один из столбцов, а после того, как редактирование выполнено, сетка обновит значение другого столбца. Я пытался использовать событие CustomRowCellEdit, но оно выдавало ошибку всякий раз, когда я добавлял это событие; В любом случае я не был уверен, как изменить значение другой ячейки. Может кто-нибудь объяснить, как это сделать?
Итак, у меня есть такая сетка:
----------------
| A | B | C |
----------------
| 1 | 50 | 100 |
----------------
| 2 | 20 | 40 |
----------------
| 3 | 10 | 20 |
----------------
Допустим, пользователь редактирует строку 1, столбец B как 25. После того, как они внесут изменение, я хочу, чтобы строка 1, столбец C, была в два раза больше, чем B. Таким образом, конечный результат ниже, где B1 - это значение, введенное пользователем, а C1 рассчитывается на основе значения в B1.
----------------
| A | B | C |
----------------
| 1 | 25 | 50 |
----------------
| 2 | 20 | 40 |
----------------
| 3 | 10 | 20 |
----------------
Я пробовал это:
private void myView_CustomRowCellEdit_1(object sender, DevExpress.XtraGrid.Views.Grid.CustomRowCellEditEventArgs e)
{
string newValue = e.CellValue.ToString();
int index = myView.GetDataSourceRowIndex(e.RowHandle);
myView.SetRowCellValue(index, "B", newValue);
}
но я не думаю, что буква "B" ссылалась на столбец правильно, и я получил ошибку во время выполнения с исключением нулевой ссылки.