所以,我有一个使用 BindingList 作为数据源的 DataGridView
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;}
}
我使用一个组合框列:
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 类,但无法使其正常工作。
当然,我可以在 Car 类中使用 int 来表示颜色,但效果不是很好。
正如您可能猜到的那样,这些类实际上是 Castle Project ActiveRecord-s。
欢迎任何想法!