Как обновить значения существующего элемента в ListView? - PullRequest
0 голосов
/ 22 марта 2019

Я работаю над небольшим проектом, и мне нужно добавить элемент с некоторыми значениями в 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

В нынешнем виде значения могут обновляться только в том случае, если Элемент находится первым в списке, нокак только он перемещается на шаг вниз, аналогичный элемент также вставляется в ListView со своими собственными записями вместо поиска и обновления уже существующего.

Любая помощь по ее исправлению будет принята с благодарностью.Спасибо.

1 Ответ

0 голосов
/ 23 марта 2019

Просмотрите все 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
...