【问题标题】:In DevExpress, how do I change the value of a cell after the value of another cell is change?在 DevExpress 中,如何在另一个单元格的值更改后更改一个单元格的值?
【发布时间】:2018-09-13 18:43:05
【问题描述】:

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

【问题讨论】:

  • C 列中的值是否总是 B 列中的值的两倍?在这种情况下,您可以使用未绑定的表达式。

标签: devexpress devexpress-gridcontrol


【解决方案1】:

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

有关更多信息,请参阅Modify and Validate Cell Values 帮助主题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    • 2013-12-27
    • 2020-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多