2012-09-14 2 views
1

런타임시 Windows 양식의 DataTable을 바인딩하려고합니다. 런타임에 양식을 작성하고 Data table을 양식의 gridview에 바인드합니다. 하지만 양식에 데이터가 표시되지 않습니다. 나는 다음 코드를 사용했다 :Windows Form에서 DataGridView를 동적으로 바인딩합니다.

frmSearch frm = new frmSearch(); 
for (int i = 0; i < erpData.ERPDataTable.Columns.Count; i++) 
{ 
    frm.Controls["grdSearch"].DataBindings 
     .Add("DataSource", erpData.ERPDataTable, 
         erpData.ERPDataTable.Columns[i].ToString()); 
} 

frm.Show(); 

무엇이 문제 일 수 있는가? 누구든지 대체 솔루션을 제공 할 수 있습니까?

답변

2

당신은 세 단계로 일부 데이터 소스에 DataGridView에 바인딩 할 수 있습니다 : 당신의 도움에 대한

// Create a binding source 
var bs = new BindingSource(); 

// set the bindingsource's datasource, in this case your table 
bs.DataSource = erpData.ERPDataTable; 

// set the datagridview's datasource, DataSource isn't a property on Control, 
// so cast the one you get from your form's Controls collection as a DataGridView 
var dgv = (DataGridView)frm.Controls["grdSearch"]; 
dgv.DataSource = bs; 

MSDN reference on binding DataGridView

+0

감사합니다. – user1672097

+0

내 기쁨. 희망이 당신의 질문에 대답했다. – itsmatt

관련 문제