Используйте vb для добавления элемента и изменения значения второго столбца listview в wpf

#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
  

Удачи!!