SamuelDexter Ответов: 1

Как выполнить итерацию по списку и назначить тексты основных элементов и подпунктов на итерационные кнопки


Всем привет.
Я пытаюсь захватить тексты каждой строки ListView и ассимилировать их с
повторяющиеся плитки/кнопки. Код, который я написал, к сожалению, берет только последнюю строку и печатает ее на всех
повторенные плитки. (плитки являются DevExpress-сторонними компами. между прочим. но здесь дело не в этом)

Например. Listview содержит следующие две строки (их может быть больше);
Name | Country | City
---------------------------
Sam  | 	Japan  | Tokyo
Dexter | Italy | Rome


таким образом, то, что я ищу, - это возможность печатать на повторяющихся плитках/кнопках таким образом:
FIRST TILE's TEXT:
Sam 
Japan
Tokyo

SECOND TILE's TEXT:
Dexter 
Italy
Rome

Это мой код:
Dim strTileInfo As String = Nothing

    For Each tile As TileItem In TheTileControl.Items 'My iteration code through the tiles/buttons

        strTileInfo = Nothing
        tile.Text = Nothing

        'My attempt to assign each row of the ListView main item and subitem texts
        'Each row to each button
        For i = 0 To ListView.Items.Count - 1
            strTileInfo = ListView.Items(i).Text & vbCrlf & ListView.Items(i).SubItems(1).Text
            tile.Text = strTileInfo
        Next

    Next


Я буду очень благодарен вам за помощь. Спасибо.

1 Ответов

Рейтинг:
7

CHill60

Попробуйте удалить один из циклов, например (предупреждение-непроверенный)

Dim strTileInfo As String = Nothing

Dim i As Integer = 0 

 For Each tile As TileItem In TheTileControl.Items 'My iteration code through the tiles/buttons

	strTileInfo = Nothing
	tile.Text = Nothing
 
    If i < ListView.Items.Count
		strTileInfo = ListView.Items(i).Text & vbCrlf & ListView.Items(i).SubItems(1).Text
		tile.Text = strTileInfo
	End If
	i = i + 1
Next


SamuelDexter

Работает как по волшебству! Большое вам спасибо, CHill60. :)