2010-05-11 3 views
0

바로이 말은 나를 미치게합니다. 난 아직 아무것도에 침몰하지와 웹에있는 모든 게시물을 읽고 같은 느낌 . 는 목록DataGridViewComboBoxColumn Binding

gvCompany.DataSource = BLL.Inventory.Company.GetAllActive(forceReload); 
DataGridViewComboBoxColumn stateColumn = GridViewComboBoxColumn(); 
DataGridViewComboBoxCell cellCombo = new DataGridViewComboBoxCell(); 
stateColumn.DataPropertyName = "StateName"; 
stateColumn.CellTemplate = cellCombo; 
gvCompany.Columns.Add(stateColumn); 
private static DataGridViewComboBoxColumn GridViewComboBoxColumn() 
     { 
      DataGridViewComboBoxColumn sColumn = new DataGridViewComboBoxColumn(); 

      sColumn.DataSource = BLL.Inventory.State.GetAllActive(); 
      sColumn.DisplayMember = "Name"; 
      sColumn.ValueMember = "OID"; 
      return sColumn; 
     } 

어떤 하나 잘못하고 무엇을 메신저 나에게 보여줄 수에 바인딩되는하려고 모든 메신저? 그것은 붙어 있지만 어떤 드롭 다운,

답변

1

DataGridView에서 편집을 활성화해야합니다. 이렇게하면 Comobox Column을 드롭 다운 할 수 있습니다.

0

에 대한 결합 시도. 경우에 따라 DataSourceList<T>이 아닌 BindingList<T>으로 설정하여 문제를 해결할 수 있습니다. 예를 들어, 유형을 가정하는 것은 Company라고 :

gvCompany.DataSource = new BindingList<Company>(BLL.Inventory.Company.GetAllActive(forceReload)); 
1

귀하의 코드가 약간 혼란이 작동합니다 :

void initGridView() 
{ 
    DataGridView gvCompany = new DataGridView(); 
    DataGridViewComboBoxColumn sColumn = new DataGridViewComboBoxColumn(); 

    //Load Data to ComboBoxColumn 
    sColumn.DataSource = BLL.Inventory.State.GetAllActive(); 

    sColumn.DisplayMember = "Name"; 
    sColumn.ValueMember = "OID"; 
    gvCompany.Columns.Add(sColumn); 

    //Load Data 
    gvCompany.DataSource = BLL.Inventory.Company.GetAllActive(forceReload); 
} 

당신은 아무 문제가 없는지 확인하기 위해 먼저 간단한 데이터 소스를 시도해야한다 여기에서 사용할 수 있습니다 List<String>

DataGridViewComboBoxCell 다른 데이터 소스를 다른 라인의 콤보 박스에 지정하고 싶지 않으면 사용하지 않아도됩니다.