1

我正在使用 c# windows 窗体。我有多个按钮链接到一个列表视图,当按下一个按钮时,一个新项目被添加到列表视图中。列表视图中的列标题是“名称”和“金额”。当按下不同的按钮时,将不同的项目添加到列表视图中。我需要帮助的事情如下:当同一个按钮被按下两次时,我希望在第二次点击时金额从“1”变为“2”。所以项目名称没有重复,但数量增加了。问题是我现在正在使用文本将按钮链接到链接列表,例如(“可口可乐”,“1”),它将项目名称添加为可口可乐,数量为 1。我知道这与整数所以请帮助!

谢谢

4

2 回答 2

1

当用户按下按钮时,在添加新行之前,只需遍历所有当前的 ListViewItems 并检查它们是否已经具有相同的名称,如果是,则增加数量列。否则,像您当前一样添加该行。

bool found = false;
foreach (ListViewItem item in listView1.Items)
{
     if (item.Text.Equals("Coke"))
     {
          int amt = int.Parse(item.SubItems[1].Text);
          amt++;
          item.SubItems[1].Text = amt.ToString();
          found = true;
     }
}
if (!found)
{
     ListViewItem item = listView1.Items.Add("Coke");
     item.SubItems.Add("1");
}
于 2010-05-20T08:28:34.927 回答
1
var amount = new Dictionary<string, int>();

Button1_Click()
{
    if(amount["Coca Cola"]<=0)
    {
        add a listview items with amount 0
    }
    // find the listitem with the value "Coca Cola" using FindItemWithText() Method
    // set the value of ++amount["Coca Cola"] to that listitem in the amount field
}

手头有地图将避免在其他情况下阅读列表视图项目。

于 2010-05-20T08:37:51.640 回答