1

我在一个带有列表视图的项目中,这个列表视图有 2 个组。我很想知道是否可以为每个组创建一种行为。

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

示例截图

我想做两件事:

  • 我应该能够随时更改项目的组。

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

    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 索引是红色。

4

1 回答 1

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

请记住,它希望这两个组都在全局范围内声明(您可能更愿意对其进行更改,以便将它们作为参数传递)。

于 2013-07-22T18:50:22.373 回答