分配组中的项目并为每个组设置行为

时间:2013-07-22 16:49:16

标签: vb.net listview

我正在使用listview的项目,这个listview有2个组。我很想知道是否可以为每个组创建一个行为。

我有一个名为“在线”的项目和另一个名为“离线”的项目。这些项目前面有一个红色或黑色圆圈(图像)。这两个项目都在名为“实时”或“离线”的组中。

Sample screenshot

我想做两件事:

  • 我应该可以随时更改项目的组。

  • 当项目在组中时,行为应该更改。 (例如,如果“离线项目在组中”“实时”,则图像将更改为红点而不是黑点)

    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指数是红色的。

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")

请记住,它希望两个组都是全局声明的(您可能更愿意更改它们以便它们作为参数传递)。