我正在使用listview的项目,这个listview有2个组。我很想知道是否可以为每个组创建一个行为。
我有一个名为“在线”的项目和另一个名为“离线”的项目。这些项目前面有一个红色或黑色圆圈(图像)。这两个项目都在名为“实时”或“离线”的组中。
我想做两件事:
我应该可以随时更改项目的组。
当项目在组中时,行为应该更改。 (例如,如果“离线项目在组中”“实时”,则图像将更改为红点而不是黑点)
ImageList.Images.Add(My.Resources.bullet_black)
ImageList.Images.Add(My.Resources.bullet_red)
Liste.LargeImageList = ImageList
Dim groupeOffline As New ListViewGroup("Offline")
Dim groupeLive As New ListViewGroup("Live")
Liste.Groups.AddRange({groupeLive, groupeOffline})
Liste.Items.Add("Offline", 0).Group = groupeOffline
Liste.Items.Add("Online", 1).Group = groupeLive
在我的ImageView中,0索引是黑点 而1指数是红色的。
答案 0 :(得分:1)
您的代码已包含大部分内容。您可以依赖于在添加新项目时处理所需修改的功能。例如:
Private Sub updateGroups(curItem As String, targetGroup As String)
Dim curIndex As Integer = 1 'Same index for both group and image
Dim curGroup = groupeLive
If (targetGroup.ToLower() = "offline") Then
curIndex = 0
curGroup = groupeOffline
End If
Liste.Items.Add(curItem, curIndex).Group = curGroup
End Sub
你可以这样称呼它:
updateGroups("new live item", "Live")
或updateGroups("new offline item", "Offline")
请记住,它希望两个组都是全局声明的(您可能更愿意更改它们以便它们作为参数传递)。