DataGridViewComboBoxColumn - тип элементов в выпадающем списке - PullRequest
1 голос
/ 23 февраля 2009

У меня есть DataGridView, который имеет столбец ComboBox. Я заполняю список этого столбца элементами типа Поле :

DataGridViewComboBoxColumn fieldsColumn = argumentsDataGridView.Columns["field"] as DataGridViewComboBoxColumn;
            foreach (Field field in SessionData.Fields)
                fieldsColumn.Items.Add(field);
            fieldsColumn.DisplayMember = "Name";  

Затем, после некоторых действий пользователя, я помещаю значение в ячейку этого столбца следующим образом:

private void AddArgument(string argumentName, Field field)
        {
            int index = argumentsDataGridView.Rows.Count;
            argumentsDataGridView.Rows.Add(new DataGridViewRow());
            DataGridViewRow newRow = argumentsDataGridView.Rows[index];
            newRow.Cells["nameArg"].Value = argumentName;
            -> newRow.Cells["field"].Value = field;
        }

Если я теперь получу доступ к значению ячейки, оно будет иметь тип Поле . Если я выбираю другой элемент из комбо, значение ячейки становится строкой. Как я могу справиться с этим? Мне нужны предметы типа Поле .

1 Ответ

3 голосов
/ 24 февраля 2009

решение было создать свойство Self в классе Поле :

public Field Self
        {
            get { return this; }
        }

и устанавливается как ValueMember столбца поля со списком.
Я думал, что без указания ValueMember это является возвращаемым значением по умолчанию, и я ошибся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...