#wpf #vb.net #xaml
#wpf #vb.net #xaml
Вопрос:
Это xaml listview
<ListView Grid.Column="1" Height="auto" Name="ListView1" Width="auto" AllowDrop ="True" >
<ListView.View>
<GridView >
<GridViewColumn Header="File Name" />
<GridViewColumn Header="Path" />
<GridViewColumn Header="type" />
</GridView>
</ListView.View>
</ListView>
Я добавляю элемент в список, но он добавляет строку с тремя одинаковыми значениями
ListView1.Items.Add("abcd")
Я также пробовал несколько способов, но все еще есть проблема
Итак, я хотел бы знать, как я могу добавить другое значение во второй столбец
Dim x As ItemCollection
x.Add("a")
x.Add("b")
x.Add("c")
ListView1.Items.Add(x)
Dim x As New ItemCollection
x.Add("a")
x.Add("b")
x.Add("c")
ListView1.Items.Add(x)
И как получить значение во втором столбце?
Я пробовал этот код, но он просто возвращает второй символ первого столбца, я не могу найти никаких способов доступа ко второму столбцу
ListView1.Items(0)(1)
Ответ №1:
Я думаю, вам нужно привязать список, чтобы это сработало.
Я создал этот пример класса:
Public Class ListViewItemTemplate
Public Property FileName As String
Public Property FilePath As String
Public Property FileType As String
End Class
Изменен xaml, чтобы включить привязки DisplayMember:
<ListView Name="ListView1" Width="auto" AllowDrop ="True" Margin="0,0,0,41">
<ListView.View>
<GridView >
<GridViewColumn Header="File Name" DisplayMemberBinding="{Binding Path=FileName}" />
<GridViewColumn Header="Path" DisplayMemberBinding="{Binding Path=FilePath}"/>
<GridViewColumn Header="type" DisplayMemberBinding="{Binding Path=FileType}" />
</GridView>
</ListView.View>
</ListView>
И загрузил некоторые образцы данных:
Dim itemsList As New List(Of ListViewItemTemplate)
Dim item As New ListViewItemTemplate
item.FileName = "FileName A"
item.FilePath = "FilePath A"
item.FileType = "FileType A"
itemsList.Add(item)
item = New ListViewItemTemplate
item.FileName = "FileName B"
item.FilePath = "FilePath B"
item.FileType = "FileType B"
itemsList.Add(item)
item = New ListViewItemTemplate
item.FileName = "FileName C"
item.FilePath = "FilePath C"
item.FileType = "FileType C"
itemsList.Add(item)
ListView1.ItemsSource = itemsList
Удачи!!