将DataGridViewComboBoxColumn.Valuemember设置为列表<string> </string>

时间:2013-11-22 12:24:28

标签: c# winforms datagridviewcolumn

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

e.g。

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 个答案:

答案 0 :(得分:2)

我认为你应该这样做:

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

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