【问题标题】:How to prevent duplicate item in listview如何防止列表视图中的重复项
【发布时间】:2015-12-26 09:24:12
【问题描述】:

我想在单击按钮时将项目添加到 ListView 并且我想添加数量。我一直收到错误提示

不能在多个位置添加或插入项目“汉堡”。您必须先将其从当前位置移除或克隆。

到目前为止,这是我的代码:

For Each listItem As ListViewItem In lvOrder.Items
    If Not lvOrder.Items.ContainsKey("Burger") Then

        listItem.Text = "Burger"
        listItem.SubItems.Add(1) 'Quantity
        listItem.SubItems.Add(50.0) 'Price

        lvOrder.Items.Add(listItem)
     Else
        MessageBox.Show("Item already exist")
    End If
Next

【问题讨论】:

    标签: vb.net winforms listview


    【解决方案1】:

    您不能将多个具有相同名称(键)的项目添加到 ListView。但是,我认为您实际上想要做的是 edit 现有项目。

    您可以大大简化您的代码。添加以下项目:

    Dim newListItem As New ListViewItem
    newListItem.Text = "Burger"
    newListItem.Name = "Burger" ' this is a unique key
    lvOrder.Items.Add(newListItem)
    

    请注意,Text 和 Name 是不同的属性。文本是向用户显示的内容,名称是帮助 ListView 跟踪已添加的项目的关键。它可以与 Text 相同,也可以完全不同。

    如果您需要修改已添加的项目,只需用钥匙查找即可!

    lvOrder.Items.Item("Burger").SubItems.Add(1) ' Quantity
    lvOrder.Items.Item("Burger").SubItems.Add(50.0) ' Price
    

    无需遍历每个项目即可找到您要查找的项目!

    【讨论】:

    • 感谢您回答这个问题。现在一切正常。
    • @JarobeBernardo 太棒了!乐意效劳。 :) 如果这完全回答了您的问题,您可以单击复选标记接受它作为答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-03
    • 1970-01-01
    • 2012-11-03
    • 2016-01-23
    • 1970-01-01
    相关资源
    最近更新 更多