2013-07-22 3 views
1

Я работаю над проектом со списком, этот список имеет 2 группы. Мне любопытно узнать, можно ли создать поведение для каждой группы.Назначить элемент в группе и установить поведение для каждой группы

У меня есть элемент под названием «Онлайн», а другой - «Оффлайн». Эти предметы имеют красный или черный круг (изображение) перед ними. Оба элемента находятся в группе с именем «live» или «offline».

Sample screenshot

Я хочу сделать 2 вещи:

  • я должен быть в состоянии изменить группу по элементу всякий раз, когда я хочу.

  • Когда элемент находится в группе, поведение должно измениться. (Например, если «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 индекс красный

ответ

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

Имейте в виду, что он ожидает, обе группы должны быть объявлены глобально (вы можете предпочесть, чтобы изменить его таким образом, что они передаются в качестве аргументов).

+0

Привет varocarbas, он работает довольно хорошо, но я сделал лучшую версию (для моего проекта: р) Если вы заинтересуете: http://pastebin.com/awsEEpHt спасибо. – Riptide

+0

@Riptide С лучшей версией, вы имеете в виду взять меня и добавить попытку ... поймать? ЛОЛ. Я предполагаю, что вы назначите это как правильный ответ. – varocarbas

+0

Я имею в виду, что я использую bool для установки группы, я удаляю старый элемент в старой группе, и я добавил «If curItem =» «Then Exit Sub», потому что у меня была проблема :) да, так что помогите мне. – Riptide

Смежные вопросы