将DataGridViewComboBoxColumn.Valuemember设置为列表

我需要知道是否可以直接从字符串列表设置DataGridViewComboBoxColumn的ValueMember属性。

例如

List productNames = new List(); List t = new List(); 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

我认为你应该这样做:

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

现在,每个项目都是一个名为name的属性的Product 。 在你的旧代码中,它只是一个字符串,所以DisplayMember和ValueMember唯一可能的属性是Length ,但是在我认为这种情况下它并不相关且毫无意义。