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

标签 c# winforms gridview datagridview radgridview

我正在使用 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();
}

enter image description here

最佳答案

订阅 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;
    }
};

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

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

关于c# - 如何在 RadGridView 中的单元格值更改时触发事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28132848/

相关文章:

c# - 如何在回发后将文本保存到绑定(bind)数据库中数据的文本框

vb.net - 在标题栏 VB.NET 中添加自定义按钮

c# - 水平滚动条消失设置最后一列大小以填充

c# - WPF前要不要学Window Form?

c# - 在没有集成服务的情况下从文本文件批量插入到 sql server 的最快方法

android - 开始一项 Activity 。不能从静态上下文中引用非静态方法

c# - 如何在 gridview 中动态添加页脚行。带文本框

c# - 使用 MobileServiceClient 和 SingleSignOn 身份验证的问题

c# - 查看什么类型是动态变量c#

C# - 如何解析文本文件(空格分隔的数字)?