VB.Net ListView - PullRequest
       8

VB.Net ListView

1 голос
/ 21 февраля 2012

Я пытаюсь использовать ListView для отображения записей из набора данных. В этих записях у меня есть 4 столбца: EmployeeID, EmployeeName, CustomerID и CustomerName. Как Сотрудник, так и Клиент могут быть перечислены несколько раз, но с разными комбинациями.

Например, если у нас есть Сотрудники 1, 2, 3 и Клиенты A, B, C, мы могли бы иметь: (1А) (1B) (1C) (2A) (2В) и т.д.

Что происходит с моим, я добавляю say (1A) в listView, а затем, когда он пытается добавить (1B), я получаю сообщение об ошибке, говорящее, что он не может добавить тот же элемент.

Вот мой код:

With list
     .Clear()
     .Columns.Add("Employee ID")
     .Columns.Add("Employee Name")
     .Columns.Add("Customer ID")
     .Columns.Add("Customer Name")
     For Each row As UpFromCostExceptions.dtExceptionsRow In _dsExceptions.dtExceptions
         Dim lvItem As ListViewItem = .Items.Add(row.EmpID.ToString)
         lvItem.SubItems.Add(row.EmployeeName)
         lvItem.SubItems.Add(row.CustomerID)
         lvItem.SubItems.Add(row.CustomerName)
     Next
     .Refresh()
End With

Кто-нибудь видит, что происходит? Заранее спасибо за помощь!

Ответы [ 3 ]

3 голосов
/ 05 ноября 2013

Попробуйте, у меня есть простой класс с двумя полями, идентификатор, название, я заполнил список в функции, подобной этой.

'lstv = is the actual ListView Control
Dim i As Integer
Dim listitem As New ListViewItem
If lstv.Items.Count > 0 Then
    lstv.Items.Clear()
End If
For i = 0 To PropertyList.Count - 1
    listitem = New ListViewItem(PropertyList(i).Idefntifier)
    listitem.SubItems.Add(PropertyList(i).Title)        
    lstv.Items.Add(listitem)
Next i
1 голос
/ 23 февраля 2012

Я понял, что если я пройду и создам элемент и добавлю подэлементы перед добавлением ListViewItem в ListView, у меня могут быть повторяющиеся значения. Вот код, который я использовал:

With listExceptions
            .Clear()
            .Columns.Add("Employee ID")
            .Columns.Add("Employee Name")
            .Columns.Add("Customer ID")
            .Columns.Add("Customer Name")
            For Each row As UpFromCostExceptions.dtExceptionsRow In _dsExceptions.dtExceptions
                Dim lvItem As New ListViewItem(row.EmpID.ToString)
                lvItem.SubItems.Add(row.EmployeeName)
                lvItem.SubItems.Add(row.CustomerID)
                lvItem.SubItems.Add(row.CustomerName)
                listExceptions.Items.Add(lvItem)
            Next
            .Refresh()
        End With
0 голосов
/ 21 февраля 2012

Попробуйте сделать row.EmpID.ToString () уникальным и посмотрите, не сгенерирует ли оно исключение.

  Dim lvItem As ListViewItem = .Items.Add(row.EmpID.ToString)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...