【发布时间】:2014-03-01 01:25:14
【问题描述】:
我有一个用作购物车的 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;
}
来自cmets:
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:感谢您向我展示如何发布问题。
【问题讨论】:
-
对象sCart的类型是什么?
-
List
sCart = new List (); -
欢迎来到 Stack Overflow。请尽快阅读About 页面。此外,请编辑您的问题以澄清它(而不仅仅是评论),尤其是当它涉及代码时。我已将课程复制到问题中,但您应该将 cmets 中的任何其他相关材料复制到问题中。