将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
,但是在我认为这种情况下它并不相关且毫无意义。