'C# Datagridview How to set value for DataGridViewComboBoxColumn

I have populated my datagridview which has one combobox column.

this way i have populated my combobox column of datagridview.

if (dt != null && dt.Rows.Count > 0)
            {
                DataRow dr = dt.NewRow();
                dr[0] = "0";
                dr[1] = "--Select--";
                dt.Rows.InsertAt(dr, 0);

                (dgListLineitems.Columns["colBM"] as DataGridViewComboBoxColumn).DataSource = dt;
                (dgListLineitems.Columns["colBM"] as DataGridViewComboBoxColumn).DisplayMember = "BM_Element";
                (dgListLineitems.Columns["colBM"] as DataGridViewComboBoxColumn).ValueMember = "Code";

            }

This way i set value for combobox column for each row but no luck

for (int i = 0; i < dgListLineitems.Rows.Count; i++)
            {
                //dgListLineitems.Rows[i].Cells["colBM"].Value = "0";
                dgListLineitems.Rows[i].Cells["colBM"].Value = "--Select--";
            }

i use this dgListLineitems.Rows[i].Cells["colBM"].Value = "0"; but no item is selected in combobox column.

i want to show each combobox in datagridview should have this default text --Select--

where i made the mistake. please guide me. Thanks

Full code sample for grid bind with combobox column

//Grid bind
dgListLineitems.AutoGenerateColumns = false;
dgListLineitems.DataSource = ListOfElements.Copy();

dgListLineitems.Columns["colRow"].DataPropertyName = "RowNumber";
dgListLineitems.Columns["colLineitem"].DataPropertyName = "LineItem";

dgListLineitems.Columns[0].Width = 60;
dgListLineitems.Columns[1].Width = 75;
dgListLineitems.Columns[2].Width = 498;
dgListLineitems.Columns[3].Width = 502;

//Bind combobox column
if (dt != null && dt.Rows.Count > 0)
{
    DataRow dr = dt.NewRow();
    dr[0] = "0";
    dr[1] = "--Select--";
    dt.Rows.InsertAt(dr, 0);

    (dgListLineitems.Columns["colBM"] as DataGridViewComboBoxColumn).DataSource = dt;
    (dgListLineitems.Columns["colBM"] as DataGridViewComboBoxColumn).DisplayMember = "BM_Element";
    (dgListLineitems.Columns["colBM"] as DataGridViewComboBoxColumn).ValueMember = "Code";
}

//Set value for combobox column
for (int i = 0; i < dgListLineitems.Rows.Count; i++)
{
    dgListLineitems.Rows[i].Cells["colBM"].Value = "0";
}


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source