如何更新ListView中现有项目的值?

时间:2019-03-22 16:06:44

标签: vb.net listviewitem

我正在做一个小项目,我必须将带有一些值的项目添加到ListView中。
我希望能够更新项目的值(如果再次添加该项目),而不是再次读取具有不同详细信息的同一项目。

下面是到目前为止我设法完成的代码:

For Each item as ListViewItem in MainListView.Items
    If item.SubItems(0).Text = ItemCode Then
       item.SubItems(3).Text += ItemQty
       item.SubItems(5).Text += ItemPrice
    Else
       ' normal listview insert codes run here
    End If
Next

按现在的样子,仅当Item在列表中的第一位时才可以更新值,但是一旦它向下移动一步,类似的Item也将以其自己的记录插入到ListView中,而不是查找和更新已经存在的现有的。

任何帮助纠正它的方法将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

遍历您的ListView,检查ItemCode是否存在。如果找到,则更新项目并使用Return语句退出子项。可以使用For Each,因为您不会更改集合,而只是更改集合中一项的值。如果要在列表视图中添加或删除项目,则不能使用For Each,因为集合本身已被更改。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    For Each item As ListViewItem In MainListView.Items
        If item.SubItems(0).Text = ItemCode Then
            item.SubItems(3).Text += ItemQty
            item.SubItems(5).Text += ItemPrice
            Return
        End If
    Next
    'Now if the For each fails doesn't find the record (fails to run the Return)
    ' normal listview insert codes run here
End Sub