如何使用数据集填充ObjectListView

时间:2014-02-10 04:57:19

标签: vb.net dataset objectlistview

有人可以告诉我我做错了什么......

我试图通过循环数据集来填充ObjectListView控件(我不想将它绑定到我的数据集)。第一行填充但之后没有任何内容。

我的代码如下:

If dsOverdueCalls.Tables.Count > 0 And dsOverdueCalls.Tables(0).Rows.Count > 0 Then
     For x = 0 To (dsOverdueCalls.Tables(0).Rows.Count - 1)
          'Calculate overdue amount
          .....

          Dim lstCalls = New List(Of [Call_Details])() From {New [Call_Details]() With {.Id = tempDT.Rows(x)("id").ToString, .Summary = tempDT.Rows(x)("summary").ToString, .First_Name = tempDT.Rows(x)("first_name").ToString, .Due_At = OverdueStr}}
          lsvOverdueCalls.SetObjects(lstCalls)
     Next
End If

我没有错误,但只有第一条记录会填充在我的控件中。 感谢

1 个答案:

答案 0 :(得分:1)

您在每次迭代中重置ObjectListView。所以,你认为“第一”行实际上是最后一行。以下代码将解决您的问题。

If ((dsOverdueCalls.Tables.Count > 0) AndAlso (dsOverdueCalls.Tables(0).Rows.Count > 0)) Then
    Dim lstCalls = New List(Of [Call_Details])
    For x As Integer = 0 To (dsOverdueCalls.Tables(0).Rows.Count - 1)
        lstCalls.Add(New [Call_Details]() With {.Id = tempDT.Rows(x)("id").ToString, .Summary = tempDT.Rows(x)("summary").ToString, .First_Name = tempDT.Rows(x)("first_name").ToString, .Due_At = OverdueStr})
    Next
    lsvOverdueCalls.SetObjects(lstCalls)
End If