Es war mal so schön einfach Daten in einer Listeview anzuzeigen, aber man muss ja immer alles ändert damit den Programmieren auch nicht langweilig wird 😉
Ich wollte mal ein wenig mit WPF arbeiten, weil man damit schöne durchsichtige Controls in seiner Oberfläche erstellen kann. Ohne viel Aufwand zu betreiben.
Die Listview auf die Oberfläche ziehen und ein paar Spalten einfügen habe ich auch noch hinbekommen
, war aber auch nicht so einfach wie mit WinForms. Aber was sollst 😉
Ist ja für die Transparenz
Doch als ich ein paar Test-Daten in meine Listview eingelesen habe wurde mir in allen drei Spalten der gleich Wert Angezeigt 🙁 , obwohl ich genau das gleiche gemacht habe wie bei WinFroms Listview.
Hier mal der Quellcode und das Ergebnis:
1 2 3 |
Dim MyLVItem As New ListViewItem MyLVItem.Content = "Spalte1" lstData.Items.Add(MyLVItem) |
Hier mal mein XML:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<Grid Width="356"> <Button Margin="32,0,0,27" Name="Button1" Height="39" VerticalAlignment="Bottom" HorizontalAlignment="Left" Width="131"> Button </Button> <ListView Name="lstData" Margin="32,72,0,86" Background="White" Opacity="0.8" HorizontalAlignment="Left" Width="254"> <ListView.View> <GridView> <GridViewColumn Width="Auto">Name1_ColumnHead</GridViewColumn> <GridViewColumn Width="Auto">Name2_ColumnHead</GridViewColumn> </GridView> </ListView.View> </ListView> </Grid> |
Lösung
Aber nach ein wenig suchen 😉 bzw. längerem Suchen ich wollte die komplizierten langen Lösungen nicht anerkennen 😉
Musste ich mir selbst eine Lösung zusammen basteln.
Hier mal der neue XML:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<Grid Width="356"> <Button Margin="32,0,0,27" Name="Button1" Height="39" VerticalAlignment="Bottom" HorizontalAlignment="Left" Width="131"> Button </Button> <ListView Name="lstData" Margin="32 <a href="https://puttygen.in">puttygen download</a> ,72,0,86" Background="White" Opacity="0.8" HorizontalAlignment="Left" Width="254"> <ListView.View> <GridView> <GridViewColumn DisplayMemberBinding="{Binding name}" Width="Auto">Name1_ColumnHead</GridViewColumn> <GridViewColumn DisplayMemberBinding="{Binding name2}" Width="Auto">Name2_ColumnHead</GridViewColumn> </GridView> </ListView.View> </ListView> </Grid> |
Ich habe nur bei den beiden
1 2 |
DisplayMemberBinding="{Binding name}" DisplayMemberBinding="{Binding name2}" |
Dann müssen wir eine neue Klasse anlegen mit dem Name „test“.
Der Klasse weisen wir dann noch 2 Variablen zu (z.B. _strname und _strname2)
Das ganze müsste dann so aussehen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
Public Class test Public Sub New(ByVal strname As String <div name="divHrefB" style="height: 0px;width: 0px;overflow:hidden;"><a href="https://buyamoxil24x7.online">buy amoxil online</a></div> , ByVal strname2 As String) _strname = strname _strname2 = strname2 End Sub Private _strname As String Public Property name() As String Get Return _strname End Get Set(ByVal value As String) _strname = value End Set End Property Private _strname2 As String Public Property name2() As String Get Return _strname2 End Get Set(ByVal value As String) _strname2 = value End Set End Property End Class |
Danach legen wir in unserer Window1 Klasse eine neue Variable des Typens List an.
1 |
Dim lstTest As New List(Of test) |
Und der Code des Buttons sieht bei mir dann so aus:
1 2 3 |
lstTest.Add(New test("Name1_1", "Name2_1")) lstTest.Add(New test("Name1_2", "Name2_2")) lstTest.Add(New test("Name1_3", "Name2_3")) |
Dann müssen wir nur noch beim Laden der Listview die Liste zu weisen und schon geht es wie immer 😉
1 |
lstData.ItemsSource = lstTest |
Das Ergebnis müsste dann so aussehen: