我正在创建这个简单的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
答案 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