C# 当RadGridView中的单元格值更改时,如何触发事件?

C# 当RadGridView中的单元格值更改时,如何触发事件?,c#,winforms,gridview,datagridview,radgridview,C#,Winforms,Gridview,Datagridview,Radgridview,我正在使用RadGridView显示正在出售的商品。在同一行中,我还有一个“数量”、“单价”、“总价”列 当用户更改“数量”列的值时,我想触发一个事件,通过将“数量”乘以“项目价格”来计算“总价”列的值 如何添加仅在“数量”列的值更改时才会触发的事件 我试过这个,但没有效果 private void radGridView1_CurrentRowChanged(object sender, CurrentRowChangedEventArgs e) { double itemPrice

我正在使用
RadGridView
显示正在出售的商品。在同一行中,我还有一个“数量”、“单价”、“总价”列

当用户更改“数量”列的值时,我想触发一个事件,通过将“数量”乘以“项目价格”来计算“总价”列的值

如何添加仅在“数量”列的值更改时才会触发的事件

我试过这个,但没有效果

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
事件(如果需要,请在构造函数中):

您可能需要添加一些错误处理,如果price不是小数,则转换为不同的类型,等等


你也可以把它分成一个单独的方法;通过一个简短的方法,我有时发现这种“内联”方式更易于阅读和维护。YMMV.

我已将此代码添加到表单加载中,但当数量列更改时,它不会触发。我只是在问题中添加了一个屏幕截图,以直观地向您展示我是如何进行编辑的。完成编辑后,我按enter键或将焦点更改为其他单元格/控件非常感谢。这确实是一个打字错误
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;
    }
};