С# DataGridView: значение исчезает в динамически добавленном столбце

Я сталкиваюсь с чем-то странным, или, может быть, это так работает, и это просто мое непонимание того, как работает datagridview. Я динамически добавляю столбец, когда нажимаю кнопку

    private void btnAssign_Click(object sender, EventArgs e)
    {
        if (!gvData.Columns.Contains("DepartmentId"))
        {
            DataGridViewTextBoxCell cell = new DataGridViewTextBoxCell();
            DataGridViewColumn dc = new DataGridViewColumn();
            dc = new DataGridViewTextBoxColumn();
            dc.HeaderText = "DepartmentId";
            dc.Name = "DepartmentId";
            dc.CellTemplate = cell;
            gvData.Columns.Add(dc);
        }
        foreach(DataGridViewRow row in gvData.SelectedRows)
        {
            row.Cells["DepartmentId"].Value = getSelectedValues(clbDept);
        }
    }

сначала он проверяет, находится ли столбец DepartmentId в datagridview (dgv). Если нет, то я создаю новую колонку Datagridviewtextbox и устанавливаю соответствующие настройки. Затем добавляет значения в ячейки. Пока все хорошо... это делает странные вещи... когда я сортирую другой столбец, данные в столбце "DepartmentId" исчезают. Данные исчезают в столбцах, которые я динамически создаю. Должен ли я использовать метод сохранения или что-то в этом роде?


person Peter Sun    schedule 15.08.2013    source источник


Ответы (1)


Вместо добавления данных непосредственно в datagridview вам нужно добавить столбец в источник данных и переназначить источник данных в datagridview. Это решит вашу проблему с сортировкой.

person Ehsan    schedule 15.08.2013