[C#] ComboBox에 Datatable로 바인딩하기

DataTable을 만들고 Text와 Value를 지정해주면 된다.

//define DataTable
DataTable dt = new DataTable("dataTable");
dt.Columns.Add("Id", typeof(int));
dt.Columns.Add("Name", typeof(string));

//add DataRow
DataRow row = dt.NewRow();
row["Id"] = 1;
row["Name"] = "One";
dt.Rows.Add(row);

//assign to ComboBox
comboBox.DataSource = dt;
comboBox.DisplayMember = "Name";
comboBox.ValueMember = "Id";

바인딩 된 값을 가져와보자

DataRow row = ((DataTable)comboBox.DataSource).Rows[comboBox.SelectedIndex];
int Id = (int)row["Id"];
string Name = (string)row["Name"];