2013-11-22 1 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; 

확실히 하나가 cmbItems.ValueMember를 설정 않는 방법 http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcomboboxcolumn.datasource.aspx

의 예를 얻을하지 않았다?

+1

각 항목은'string'이므로'DisplayMember' 또는'ValueMember'를 지정할 필요가 없습니다. 여기에 사용할 수있는 속성은 하나뿐입니다.이 속성은 'Length' 속성입니다. –

+0

관련 코드 만 표시하십시오. 그것은 우리에게 디버깅을 더 쉽게 만듭니다. – nawfal

답변

2

난 당신이 이런 식으로 뭔가를해야한다고 생각 :

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

이제 각 항목 name라는 속성을 가진 Product입니다. 이전 코드에서는 DisplayMember 및 ValueMember의 유일한 속성이 Length이지만이 문자열은 관련성이없고 의미가 없습니다.

+0

답장을 보내 주셔서 감사합니다. 멤버를 "이름"과 동일시 할 때 "이름이라는 필드가 존재하지 않습니다."라는 오류 메시지가 나타납니다. –

+0

@KinyanjuiKamau는'Product' 클래스가'name' 속성을 가지고 있지 않습니까? 'name' 또는 더 나은 이름 인'Name'이라는 속성을 정의해야한다는 것을 기억하십시오. –