如何在 RadGridView 中的单元格值更改时触发事件?

How to fire an event when a value of a cell change in a RadGridView?

我正在使用 RadGridView 来显示正在销售的商品。在同一行中,我还有一个 "Quantity"、"Unit Price"、"Total Price" 列。

当用户更改 "Quantity" 列的值时,我想触发一个事件,该事件将通过 "Quantity" 乘以 [= 来计算 "Total Price" 列的值29=]

如何添加这样一个只有在 "Quantity" 列的值发生变化时才会触发的事件?

这个我试过了,没有影响

private void radGridView1_CurrentRowChanged(object sender, CurrentRowChangedEventArgs e) {

    double itemPrice = Convert.ToDouble(e.CurrentRow.Cells["Unit Price"].Value);
    int itemQty = Convert.ToInt32(e.CurrentRow.Cells["Qty"].Value);
    double totalPrice = itemPrice * itemQty;

    e.CurrentRow.Cells["Total Price"].Value = totalPrice.ToString();
}

订阅 CellEndEdit 事件(如果需要,在您的构造函数中):

radGridView1.CellEndEdit += (s, e) =>
{
    if (e.Column == radGridView1.Columns["Qty"])
    {
        var row = radGridView1.CurrentRow.Cells;

        row["Total Price"].Value =
            (int)row["Qty"].Value * (decimal)row["Item Price"].Value;
    }
};

您可能想要添加一些错误处理,并在价格不是小数时转换为不同的类型,等等。

你也可以把它拆分成一个单独的方法;使用简短的方法,我有时会发现这种 "inline" 方法更易于阅读和维护。 YMMV.