我正在尝试将一个新列表(KeyValuePair(Of String,Integer))绑定到listView 目前,我有一个代码:
Dim TestList As List(Of KeyValuePair(Of String, Integer))
For Each key in GetTPDesc (Which is a list of strings)
TestList.Add(New KeyValuePair(Of String, Integer)(GetTPDesc.ToString, 0))
Next
For Each ArtFailedPair in Table
TestAddIndex = ArtFailedPair.Failed
If TestAddIndex <> 0 Then
TestList(TestAddIndex -1) = New KeyValuePair(Of String, Integer)(TestList(TestAddIndex -1).Key, TestList(TestAddIndex -1).Value +1)
End If
Next
请注意长代码块,我知道实现是脏的,我之所以使用List of KeyValuePair,是因为需要基于索引的收集,哪个字典没有提供给我,因为我认为它将。 然后我尝试绑定:
listView.DataSource = TestList
listView.DataBind()
并且ItemTemplate具有Eval(“key”)和Eval(“value”),当然。但它给了我一个错误,它告诉我: System.Data.Objects.ObjectQuery'1 [System.String]而不是GetTPDesc。 而且我也认为是一个不正确的整数值,因为它看起来似乎不合时宜。 感谢。
GetTPDesc:
Dim GetTPDesc = (From tpProducts In context.TestResultLim
Where tpProducts.Art_no = productNumber
Order By tpProducts.TP_no
Select tpProducts.TP_desc)
答案 0 :(得分:1)
首先,List(of T)未实例化。
Dim TestList As New List(Of KeyValuePair(Of String, Integer))
并且您必须添加密钥而不是GetTPDesc.ToString()
TestList.Add(New KeyValuePair(Of String, Integer)(key, 0))
答案 1 :(得分:1)
错误如下:
For Each key in GetTPDesc
TestList.Add(New KeyValuePair(Of String, Integer)(key, 0))
Next
您要将查询添加到列表而不是字符串。