2015-09-10 75 views

回答

3

有很多方法可以做到這一點,這個簡單而美麗的方式將這樣的伎倆爲您提供:

字符串:

yourDataGridViewComboBoxColumn.Items.Cast<string>().Contains("your string value") 

長:

yourDataGridViewComboBoxColumn.Items.Cast<long>().Contains(yourLongValue) 

複雜對象:

如果您的組合框列Items是複雜的,你應該這樣做的部份方式:

yourDataGridViewComboBoxColumn.Items.Cast<YourComplexType>() 
    .Select(x => x.YourValueMemberField) 
    .Contains(yourLongValue); 

例如,如果項目是Category類型和類別已IdName和你使用其IdValueMember,你可以使用這樣的代碼:

int value=10; 
yourDataGridViewComboBoxColumn.Items.Cast<Category>() 
    .Select(x => x.Id) 
    .Contains(value); 

這裏的關鍵點是使用Cast<T>可幫助您將所有項目投射到所需類型。

這種方式,你可以使用Where()項目後Cast<T>()

+0

甚至搜索我嘗試了「龍」的版本,但我只是得到了一個「InvalidCastException的」。 – Programmer

+0

這是因爲可能所有物品都不長 –

+0

它的物品類型是什麼? –

0
DataGridViewComboBoxCell cell = dataGridView1.Rows[0].Cells[0] as DataGridViewComboBoxCell; 
    long value = 3434232; 
    if (cell.Items.Contains(value)) MessageBox.Show("Yes"); 
+0

發佈代碼是有用的,但爲了教育目的,還包括解釋它如何解決問題的一些解釋。 – neontapir

相關問題