0

我有一个 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”没有正确引用该列,并且出现运行时错误并出现空引用异常。

4

1 回答 1

0

GridView.CustomRowCellEdit事件旨在有条件地将存储库项分配给网格单元。对于您的情况,有必要改为处理GridView.CellValueChanged事件。

有关详细信息,请参阅修改和验证单元格值帮助主题。

于 2018-09-18T13:10:50.087 回答