我有一个用作购物车的 Windows 应用程序。当双击列表中的项目时,客户将要购买的金额输入文本框,系统将将该项目添加到临时列表中。如果该商品与购物车中的商品相似,系统将计算并修改购物车而不添加更多行。我现在可以添加更多与购物车中的商品相似的商品,但我无法在列表中添加更多行。
private void btnAdd_Click(object sender, EventArgs e)
{
var obj = sCart.FirstOrDefault(x => x.pID == Convert.ToInt32(productID));
if (obj == null)
{
sCart.Add(
new Cart()
{
pID = Convert.ToInt32(productID),
pName = txtProName.Text,
pDesc = txtDesc.Text,
pPrice = Convert.ToInt32(lblDisplayPrice.Text),
pAmount = Convert.ToInt32(txtAmount.Text),
pTotal = Convert.ToInt32(lblDisplayPrice.Text) * Convert.ToInt32(txtAmount.Text)
}
);
}
else {
obj.pAmount = obj.pAmount + Convert.ToInt32(txtAmount.Text);
obj.pTotal = obj.pAmount * obj.pPrice;
}
this.gvCart.DataSource = sCart;
}
从评论:
class Cart
{
public int pID
{ get; set; }
public string pName
{ get; set; }
public string pDesc
{ get; set; }
public int pPrice { get; set; }
public int pAmount { get; set; }
public int pTotal { get; set; }
}
这是 sCart 的类型。
List<Cart> sCart = new List<Cart>();
我可以添加第一项。如果我继续添加相同的物品(比如说,更新要购买的物品的数量),它会起作用。但如果我添加另一个项目,什么都不会发生。gridview 支持更新更多行,但是我之前添加的只有第一个项目。没找到问题出在哪里...
p/s:感谢您向我展示如何发布问题。