所以,我一直在使用作爲數據源一的BindingList的DataGridView,的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列一個DataGridView:
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。
歡迎任何想法!