编辑Listview中的项目

时间:2016-02-17 10:30:40

标签: vb.net listview

我正在创建这个简单的POS应用程序,如果有一个产品具有相同的产品,我想以编程方式编辑listview的项目。

在代码的底部有一个条件,如果它找到它,它有效,但我不确定如何编辑找到的列表项。

这是我当前的代码

            Dim str(5) As String
            Dim itm As ListViewItem
                str(0) = xmlnode(i).ChildNodes.Item(0).InnerText
                str(1) = xmlnode(i).ChildNodes.Item(1).InnerText
                str(2) = "£" + xmlnode(i).ChildNodes.Item(2).InnerText
                str(3) = 1
                str(4) = "£" & xmlnode(i).ChildNodes.Item(2).InnerText * str(3) 'works out total (price * quantity)
            itm = New ListViewItem(str)

            Dim findItem As ListViewItem = ListView1.FindItemWithText(xmlnode(i).ChildNodes.Item(1).InnerText)
            If Not findItem Is Nothing Then
                MsgBox("Already in list")
            Else
                ListView1.Items.Add(itm)

            End If

2 个答案:

答案 0 :(得分:1)

以下是我将如何做到这一点......我也注意到你使用了一个与我i相同的索引;可能会发生冲突,可能会发生如果是这种情况,只需将我的i更改为其他内容......

  Try
        Dim findItem As ListViewItem = ListView1.FindItemWithText(xmlnode(i).ChildNodes.Item(1).InnerText)
        If findItem IsNot Nothing Then
            For i As Integer = 1 To findItem.SubItems.Count - 1
                If findItem.SubItems(i).Text = xmlnode(i).ChildNodes.Item(1).InnerText Then
                    findItem.SubItems(i).Text = "YourNewTextValue?"
                    Exit For
                End If
            Next
        End If

    Catch ex As Exception
        'Handle your exception...
    End Try

答案 1 :(得分:0)

好的,你的意思是直截了当吗?

Dim findItem As ListViewItem = ListView1.FindItemWithText(xmlnode(i).ChildNodes.Item(1).InnerText)
If Not findItem Is Nothing Then
    MsgBox("Already in list")
    For Each item As String In findItem.SubItems
        If item = xmlnode(i).ChildNodes.Item(1).InnerText Then
            item = WhateverYourNewDataIs
        End If
    Next
Else
    ListView1.Items.Add(itm)

End If