Итак, у меня есть DataGridView, используя в качестве источника данных в BindingListDataGridView, BindingList <T>, DataGridViewComboBoxColumn
DataGridView.DataSource = new BindingList<Car>{...}
Где
public class Car
{
public ColorName Color { get; set;}
}
с
public class ColorName
{
public int Id {get; set;}
public string Name{get; set;}
}
и я использую столбец COMBOBOX:
DataGridViewComboBoxColumn colorNameDataGridViewTextBoxColumn;
colorNameDataGridViewTextBoxColumn.DataPropertyName = "Color";
colorNameDataGridViewTextBoxColumn.HeaderText = "Color";
colorNameDataGridViewTextBoxColumn.Name = "Color";
colorNameDataGridViewTextBoxColumn.DisplayMember = "Name";
colorNameDataGridViewTextBoxColumn.ValueMember = "Id";
colorNameDataGridViewTextBoxColumn.DataSource = new ColorName[] {...};
Как я могу заставить это работать?! Теперь я получаю исключение, потому что я думаю, что он пытается передать Id в ColorName.
Я пробовал с пустым ValueMember или добавлял оператор прямого трансляции к классу ColorName, но не мог заставить его работать.
Конечно, я могу использовать int в классе Car для представления цвета, но не так хорошо.
Как вы, наверное, догадались, что эти классы на самом деле являются Замок проекта ActiveRecord-s.
Любые идеи приветствуются!