天天看點

Combobox 中SelectedIndexChanged事件

不要指定 ValueMember所綁定的Field,在SelectedIndexChanged 或者 SelectedValueChanged事件中,SelectValue直接轉換為綁定類型,就能解決你所遇到的問題  回複 引用 檢視   

#2樓[樓主] 2011-02-12 10:25 寒關月      

@%admin

剛剛忙完手頭的事情試了一下你的方法,我不确定你最後說的在事件中直接轉換是什麼意思,但是你看下如下代碼:

Combobox 中SelectedIndexChanged事件

在事件調用的時候,并不能解決問題,一樣依然會報錯誤。if條件還是>= 0.

是不是我了解錯誤?

如果還能看到這條回複的話還望不吝賜教  回複 引用 檢視   

#3樓 2011-02-12 12:24 %admin      

引用 寒關月:

@%admin

剛剛忙完手頭的事情試了一下你的方法,我不确定你最後說的在事件中直接轉換是什麼意思,但是你看下如下代碼:

Combobox 中SelectedIndexChanged事件

在事件調用的時候,并不能解決問題,一樣依然會報錯誤。if條件還是>= 0.

是不是我了解錯誤?

如果還能看到這條回複的話還望不吝賜教

我是跟你說綁定ComboBox的時候,隻指定用于顯示的DisplayMember就可以了,不用指定 ValueMember,這種在你的SelectedValue的類型就是你綁定的資料類型,明白嗎? 你指定了ValueMember="CategoryId"的話,在DataSource綁定時刻所觸發的事件中 SelectedValue都是綁定類型,隻有你做了選擇操作後SelectedValue的類型才是你綁定的 CategoryId的類型。   回複  引用  檢視    

#4樓 2011-02-12 12:34 %admin      

?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

class

Categor

{

public

int

Id

{

get

;

set

;

}

public

string

Name

{

get

;

set

;

}

}

private

void

Form1_Load(

object

sender, EventArgs e)

{

IList<Categor> categorlist =

new

List<Categor>();

categorlist.Add(

new

Categor() { Id = 0, Name =

"Google"

});

categorlist.Add(

new

Categor() { Id = 1, Name =

"Microsoft"

});

comboBox1.DataSource = categorlist;

comboBox1.DisplayMember =

"Name"

;

}

private

void

comboBox1_SelectedIndexChanged(

object

sender, EventArgs e)

{

Categor categor = comboBox1.SelectedValue

as

Categor;

if

(categor!=

null

)

{

MessageBox.Show(

string

.Format(

"{0}\r\n{1}"

, categor.Id, categor.Name));

}

}

  回複  引用  檢視    

#5樓 2011-02-12 16:17 無邪兮      

去掉 cboCategory.ValueMember = "CategoryID";試試!  回複 引用 檢視   

#6樓[樓主]20253012011/2/12 22:18:02 2011-02-12 22:18 寒關月      

引用 %admin:

我是跟你說綁定ComboBox的時候,隻指定用于顯示的DisplayMember就可以了,不用指定 ValueMember,這種在你的SelectedValue的類型就是你綁定的資料類型,明白嗎? 你指定了ValueMember="CategoryId"的話,在DataSource綁定時刻所觸發的事件中 SelectedValue都是綁定類型,隻有你做了選擇操作後SelectedValue的類型才是你綁定的 CategoryId的類型。

晚上到家看到回複,仔細看了一下,我帖的那個圖裡我大意搞錯了,DisplayMember和ValueMember位置弄反了。

感謝提示。因為這個的關系,一下子想明白所有之前沒搞明白的部分了。非常感謝。  

繼續閱讀