Я не знаю, не работает ли мой разум сегодня или это на самом деле тяжелее, чем я думаю, должно быть.
У меня есть DataGridView с DataGridViewComboBoxColumn, привязанным к универсальному списку объектов CustomObjects. Вот пример грубого кода, как я настраиваю столбец.
DataGridViewComboBoxColumn location = new DataGridViewComboBoxColumn()
{
Name = "Location",
DataSource = new BindingSource(GetMyLocations(), null),
DisplayMember = "Name",
ValueMember = "ID"
};
Тогда, когда я хочу вернуть значение ячейки:
string id = (string)row.Cells["Location"].Value;
Но мне не нужна ссылка на свойство ID, я хочу ссылку на фактический объект Location! Я пытался не указывать ValueMember, но, похоже, просто использовать DisplayMember.
Я мог бы перебрать все объекты Location в столбце DataSource и проверить наличие соответствующего свойства ID, однако, похоже, что ComboBoxCell должен иметь возможность возвращать это напрямую.
Кроме того, я не могу использовать словарь в этом случае.
Есть идеи, как лучше всего это сделать?