How to bind data in datagridview combobox column

前端 未结 3 1360
失恋的感觉
失恋的感觉 2020-12-20 23:34

Here are contacts but we can have multiple contacts so i want to show a list in combobox

DataTable dt = new DataTable();
dt = MainClass.GetDatabyQuery(\"         


        
3条回答
  •  执念已碎
    2020-12-21 00:07

    Just select only Name and City in dt, so that you can do something like,

            dgv_ClientDetail.DataSource = dt;
            DataGridViewComboBoxColumn dgvCboColumn = new DataGridViewComboBoxColumn();
            dgvCboColumn.Name = "Contacts";
            dgvCboColumn.DataSource = dtContacts; //DataTable that contains contact details
            dgvCboColumn.DisplayMember = "Name";
            dgvCboColumn.ValueMember = "Id";
            dataGridView1.Columns.Add(dgvCboColumn);
    

    EDIT:

            dgv_ClientDetail.DataSource = new DataView(dt)
                                             .ToTable(true, new string[] { "Name", "City" });
            DataGridViewComboBoxColumn dgvCboColumn = new DataGridViewComboBoxColumn();
            dgvCboColumn.Name = "Contacts";
            dgv_ClientDetail.Columns.Add(dgvCboColumn);
            foreach (DataGridViewRow row in dgv_ClientDetail.Rows)
            {
                DataGridViewComboBoxCell cboContacts = (DataGridViewComboBoxCell)
                                                             (row.Cells["Contacts"]);
                cboContacts.DataSource = //Get the contact details of a person,
                                         //using his Name or Id field (row.Cells["Name"]);
                cboContacts.DisplayMember = "Name"; //Name column of contact datasource
                cboContacts.ValueMember = "Id";//Value column of contact datasource
            }
    

    Hope this helps...

提交回复
热议问题