2017-08-27 40 views
0

的ValueMember我有一個數據源分配一個組合框:Winforms-如何獲得組合框(我)

Public Sub DataBind(ByVal table As DataTable, ByVal DisplayMember As String, ByVal ValueMember As String) 
    cbox.DataSource = table 
    cbox.DisplayMember = DisplayMember 
    cbox.ValueMember = ValueMember 
End Sub 

我要重複在ComboboxItems每個項目並獲取其ValueMember和DisplayMember。 我看了這個帖子ValueMember from ComboBox.Items[i] using WinForms c#

所以我試圖

For I As Integer = 0 To cbox.Items.Count - 1 
    Dim val = DirectCast(cbox.Items(I), KeyValuePair(Of Integer, String)).Value 
Next 

,但我得到一個無效轉換異常說,指定的強制轉換無效。 我在做什麼錯?

+1

創建像[本C#版]一個'GetItemValue'擴展方法(https://stackoverflow.com/a/38305363/3110834)。 –

+0

DisplayMemeber和Valuemember仍然在DataTable/DataTable中,所以它不清楚你在玩什麼 – Plutonix

回答

1

發現了另一種解決方案是什麼,我想實現:

Dim row As DataRow = DirectCast(cbox.Items(I), DataRowView).Row 
Dim val As String = (row(cbox.ValueMember)).ToString()