Hallo,
als erstes sollten wir uns um eine vernünftige Datenhaltung kümmern. Das heißt, deine Artikel in eine Klasse verpacken:
Class Artikel
Public Property Artikelnummer As String
Public Property Hersteller As String
Public Property Preis As Double
End Class
Dann passen wir das ListView an. Das könnte theoretisch auch per Reflection geschehen, aber der Einfachheit halber bleiben wir mal beim Hardcoden (z.B. in Form_Load):
listView.Columns.Add(New ColumnHeader() With { .Text = "Artikelnummer" })
listView.Columns.Add(New ColumnHeader() With { .Text = "Hersteller" })
listView.Columns.Add(New ColumnHeader() With { .Text = "Preis" })
listView.FullRowSelect = True
listView.View = View.Details
AddHandler listView.ItemSelectionChanged, AddressOf SelectionChanged
Und dann können wir schon unsere Daten einfüllen:
For Each artikel As Artikel In alleArtikel
Dim item = New ListViewItem({ artikel.Artikelnummer, artikel.Hersteller, artikel.Preis.ToString() })
item.Tag = artikel
listView.Items.Add(item)
Next
Dann kümmern wir uns noch um das Auswählen:
Private Sub SelectionChanged(sender As Object, e As ListViewItemSelectionChangedEventArgs)
If e.IsSelected And e.Item IsNot Nothing Then
Dim artikel = DirectCast(e.Item.Tag, Artikel)
MessageBox.Show(artikel.Artikelnummer & ", " & artikel.Hersteller & ", " & artikel.Preis)
End If
End Sub
Nico