2011-09-20 66 views
0

我想一個新的列表(共KeyValuePair(字符串,整數))綁定到ListView 目前,我有斷碼:VB.Net/WebForms - 綁定keyvaluepair的列表的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 

請原諒我的碼長塊,我知道實現,是髒的,並就基於索引的總彙的需要,這是我認爲它解釋沒有提供我爲什麼使用KeyValuePair名單的原因,是由於將。 然後我嘗試使用綁定:

listView.DataSource = TestList 
listView.DataBind() 

而ItemTemplate中具有的eval( 「密鑰」)和eval( 「值」)着,當然。但它給了我一個錯誤,它讓我看到: System.Data.Objects.ObjectQuery'1 [System.String]代替GetTPDesc的。 而且我也認爲這是一個不整數的整數值,因爲它看起來很失敗。 謝謝。

的GetTPDesc:

所有列表(的T)的
Dim GetTPDesc = (From tpProducts In context.TestResultLim 
       Where tpProducts.Art_no = productNumber 
       Order By tpProducts.TP_no 
       Select tpProducts.TP_desc) 

回答

1

的錯誤是在下面一行:

For Each key in GetTPDesc 
    TestList.Add(New KeyValuePair(Of String, Integer)(key, 0)) 
Next 

要添加查詢到列表而不是字符串。

+0

爲什麼ofcourse,gaaah,這種低級錯誤,非常感謝你,我想我必須得到我的頭8個小時VB.Net後,謝謝:) –

1

首先不是實例。

Dim TestList As New List(Of KeyValuePair(Of String, Integer)) 

,你必須添加關鍵不是GetTPDesc.ToString()

TestList.Add(New KeyValuePair(Of String, Integer)(key, 0)) 
+0

對不起,它被實例化,我不得不手動輸入的一切,我想你的方法,其本質上是一回事,我只是改變了我的ItemTemplate,還是同樣的問題,顯示的ObjectQuery而不是GetTPDesc,並顯示一些發生故障整數。 –

+0

@Reigo Hein:你可以發佈一個GetTpDesc方法嗎? – adatapost

+0

我覺得那裏有問題,與對於GetTPDesc每個鍵,在那之後,列表充滿System.Data.Objects.ObjectQuery'1 [System.String],0,當我tryed斷點調試它,而不是在GetTPDesc什麼似乎有真正的價值 –

相關問題