2012-01-05 257 views
0

我將一個數據表綁定到加載時的combobox.DataSource。然後給組合框一個DisplayMember和一個ValueMember(數據表中的兩個不同的列)。在組合框的SelectedIndexChanged中,我想使用組合框的SelectedValue屬性,只是爲了測試我MsgBox(combobox.SelectedValue),並且我得到了「參數'提示''無法轉換爲'String'類型。爲什麼它沒有顯示價值? :(VB.NET綁定組合框SelectedValue不顯示

OnLoad 
    cbCISoftware.DataSource = dbMaps.Tables("maps") 
    cbCISoftware.ValueMember = "id" 
    cbCISoftware.DisplayMember = "name" 

SelectedIndexChanged of cbCISoftware 
    MsgBox(cbCISoftware.SelectedValue) 

SelectedValue.ToString outputs 
    System.Data.DataRowView 
+0

你可以添加你的數據綁定代碼和selectedindexchanged代碼,所以我們可以仔細檢查? – 2012-01-05 21:26:47

+0

添加了代碼! (也是DisplayMember在表單上顯示的很好) – Theveloper 2012-01-05 21:31:04

回答

1

我認爲問題是,你需要綁定表的默認視圖:

cbCISoftware.DataSource = dbMaps.Tables("maps").DefaultView 
+0

唯一的是,OnLoad當它分配數據源時,我必須爲combobox_SelectedIndexChanged創建一個異常,因爲它仍然輸出System.Data.DataRowView作爲SelectedValue(它只會觸發一次),但數據源分配後,它工作正常。但是,如果將異常處理置於SelectedValueChanged下,則該事件觸發兩次,第二次觸發正確的值。謝謝! – Theveloper 2012-01-06 16:19:34

0

首先,你必須確保有選擇DropDownListDropDownStyleCombobox,而且綁定工作。

然後你有MsgBox(cbCISoftware.SelectedValue.ToString)

更換 MsgBox(cbCISoftware.SelectedValue)

否則爲獲得結果,MsgBox(cbCISoftware.Text)將工作,但它可能不是你正在尋找的:-)

我可以爲您提供完整的代碼來做綁定,如果你需要它。

相關問題