private async void olvDetails_CellEditFinishing(object sender, CellEditEventArgs e) { if (e.Cancel) { return; } if (e.RowObject is MachineDetailsVm row) { if (e.Column == olvPieces) { row.Qty = (int)e.NewValue; if (row.Qty < 0) { row.Qty = 0; } _dmr.SetQuantity(row); } else if (e.Column == olvMaterial) { var detail = await _dr.GetByIdAsync(row.DetailId); detail.Material = e.NewValue.ToString(); await _dr.UpdateAsync(detail); } else if (e.Column == olvPrice) { var detail = await _dr.GetByIdAsync(row.DetailId); detail.Price = (decimal)(string.IsNullOrWhiteSpace(e.NewValue.ToString()) ? 0m : e.NewValue); await _dr.UpdateAsync(detail); } else if (e.Column == olvRemark) { var detail = await _dr.GetByIdAsync(row.DetailId); detail.Remark = e.NewValue.ToString(); await _dr.UpdateAsync(detail); } FillOlv(row.MachineId); } }