Datagridivew DataGridViewComboBoxColumn выбрать значение элемента - PullRequest
3 голосов
/ 03 января 2012

У меня есть datagridview, который имеет один столбец со списком. я заполняю колонку со списком. когда я выбираю любой текст из колонки в выпадающем списке, тогда мне нужно получить значение, когда я читаю данные в цикле for.

dgFilter здесь datagridview

            DataGridViewComboBoxColumn dgcoSpec = new DataGridViewComboBoxColumn();
            dgcoSpec = new DataGridViewComboBoxColumn();
            dgcoSpec.DataSource = loadOperators();
            dgcoSpec.DisplayMember = "Operatortxt";
            dgcoSpec.ValueMember = "Operatorvalue";
            dgcoSpec.AutoComplete = true;
            dgcoSpec.HeaderText = "Operators";
            dgcoSpec.Name = "Operators";
            dgcoSpec.DefaultCellStyle.NullValue = "--Select--";
            dgcoSpec.Width = 130;
            dgFilter.Columns.Insert(1, dgcoSpec);

вот так я читаю данные из столбца комбобокса

for (int i = 0; i <= dgFilter.Rows.Count - 1; i++)
{
  strOperator = dgFilter.Rows[i].Cells[1].Value.ToString().Trim();
}

но проблема в том, что я не получаю элемент значения combox, а я получаю отображаемый элемент. так как извлечь значение из цикла for. пожалуйста, направьте меня с кодом. спасибо

1 Ответ

1 голос
/ 03 января 2012

Значение элемента равно строка, которая отображается внутри DataGridViewComboboxCell.

Фактический элемент управления Combobox существует только в течение периода времени, в течение которого пользователь редактирует ячейку.

Если вы имеете в виду, что хотите получить индекс значения в спискеиз элементов DataGridViewComboboxCell можно запросить индекс значения:

for (int i = 0; i <= dgFilter.Rows.Count - 1; i++)
{
    var cell = dgFilter.Rows[i].Cells[1] as DataGridViewComboboxCell;
    int index = cell == null || cell.Value == null ? -1 : cell.Items.IndexOf(cell.Value);
    Console.WriteLine(index);
}

В этом примере я использую -1 в качестве неверного значения.

РЕДАКТИРОВАТЬ Только что заметил, что вы используете DataSource;См. DataGridViewComboBoxColumn имя / значение как? для возможного дублирования.

...