In DevExpress, how do I change the value of a cell after the value of another cell is change?

3.4k views Asked by At

I have a DevExpress.XtraGrid. I want the user to edit one of the columns and, after the edit is made, for the grid to update the value of another column. I tried using the event CustomRowCellEdit, but it threw an error whenever I added that event; I wasn't sure how to change the value of another cell anyway. Can someone explain how to do this?

So I've got a grid like this:

----------------
| A | B  | C   |
----------------
| 1 | 50 | 100 |
----------------
| 2 | 20 | 40  |
----------------
| 3 | 10 | 20  |
----------------

Let's say the user edits row 1, column B to be 25. After they make the change, I want row 1, column C to be twice what B is. So the end result is below where B1 is the value that is user entered and C1 is calculated based on the value in B1.

----------------
| A | B  | C   |
----------------
| 1 | 25 | 50  |
----------------
| 2 | 20 | 40  |
----------------
| 3 | 10 | 20  |
----------------

I tried this:

    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);
    }

but I don't think the "B" referred to the column correctly and I got a run time error with a null reference exception.

1

There are 1 answers

0
Svetlana On

The GridView.CustomRowCellEdit event is intended to assign repository items to grid cells conditionally. For your case, it is necessary to handle the GridView.CellValueChanged event instead.

Refer to the Modify and Validate Cell Values help topic for more information.