我有一个winforms应用程序,它接受用户输入,并将其添加到列表中。此列表然后显示在列表框中。是否有可能不在每个输入的列表框中添加新行?
我的问题是,我希望列表框只在一行上显示一次单个项目。 目前,它应该是这样的:
Product Price Quantity
Bread 1.20 1
Bread 2.40 2
Bread 3.60 3
Eggs 1.50 1
Eggs 3.00 2
我会把它想显示:
Product Price Quantity
Bread 3.60 3
Eggs 3.00 2
是否有可能实现这一目标?
private void btnAdd_Click(object sender, EventArgs e)
{
lbBasket.DisplayMember = "ProductName";
try
{
string name = textBoxProduct.Text.ToString();
decimal price = Convert.ToDecimal(textBoxPrice.Text);
int quantity = Convert.ToInt32(textBoxQuantity.Text);
if (string.IsNullOrWhiteSpace(textBoxQuantity.Text))
{
shoppingBasket.AddProduct(name, price);
lbBasket.Items.Add(textBoxProduct.Text);
lbPrice.Items.Add(shoppingBasket.BasketTotal);
lbQuantity.Items.Add(shoppingBasket.NumberOfTotalQuantities);
}
else
{
shoppingBasket.AddProduct(name, price, quantity);
lbPrice.Items.Add(shoppingBasket.BasketTotal);
lbQuantity.Items.Add(shoppingBasket.NumberOfTotalQuantities);
foreach (OrderItem item in shoppingBasket)
{
if (item.ProductName == name)
{
lbBasket.Items.Add(item.ProductName);
}
}
}
}
显示代码如何将值添加到列表框 –
您可以不使用字典中添加的项目保持每个独特项目的价格的运行总计。然后重新绑定列表,每次添加新项目 – owen79
@ RayB151 - 您似乎在使用三个不同的列表框。所以不,我不认为你可以简单地达到你想要的。如果你使用单个列表框,那么是的。但是,如果您要求显示具有最高值或最高数量的项目(从您的示例推断),则显示此数据的两个列表框之间不存在实际的联系。 – Faraday