2013-11-22 56 views
0

我需要知道是否可以直接從字符串列表中設置DataGridViewComboBoxColumn的ValueMember屬性。將DataGridViewComboBoxColumn.Valuemember設置爲列表<string>

例如

List<string> productNames = new List<string>(); 

List<Products.Product> t = new List<Products.Product>(); 

foreach (var p in products) 
{ 
    var x = p.Product; 

    itemListing = x; 

    foreach (var pn in x) 
    { 
     productNames.Add(pn.name); 
    } 
} 
............. 

// set values to combobox column cells in datagridview 
GridSellProducts.Rows.Add(); 
DataGridViewComboBoxColumn cmbItems = (DataGridViewComboBoxColumn)GridSellProducts.Columns["Item"]; 

cmbItems.DataSource = productNames; 
cmbItems.DisplayMember = cmbItems.ValueMember; 
cmbItems.ValueMember = // code to put here 
cmbItems.AutoComplete = true; 

並沒有完全得到http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcomboboxcolumn.datasource.aspx

怎樣才能設置cmbItems.ValueMember的例子嗎?

+1

每個項目都是'string',所以你不需要指定任何'DisplayMember'或'ValueMember'。這裏只有一個屬性,它是'Length'屬性。 –

+0

請只顯示相關的代碼。它使我們更容易調試。 – nawfal

回答

2

我認爲你應該做這樣的事情:現在

cmbItems.DataSource = products; 
cmbItems.DisplayMember = cmbItems.ValueMember = "name"; 

,每一項都是一個Product一個叫做name屬性。在舊代碼中,這只是一個字符串,因此DisplayMember和ValueMember的唯一可能屬性是Length,但在這種情況下,我認爲它不相關並且毫無意義。

+0

感謝您的回覆。當我將成員等同於「名稱」時,我收到錯誤「字段名稱不存在」。 –

+0

@KinyanjuiKamau是不是你的'Product'類有一個屬性'name'?記住你必須定義一個名爲'name'的屬性或者一個更好的名字'Name'。 –