我有一个简单的数据库(SQL),汽车表有六个字段:ID、所有者、年份、颜色、品牌和型号。颜色表只是:ID、ColorName。
我有一个带有 DataGridView 的表单。当我将 Cars 表绑定到 DataGridView 时,一切正常。
现在,我正在尝试将 DataGridView 中的颜色列设置为用于编辑的组合框,并仅列出我的颜色表中的颜色。我可以制作一个组合框并将其添加到 DataGridView,但我只想“转换”已经包含数据的列。
提前感谢您提供的任何帮助。
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace EditingCells
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
var myDataBase = new CarsEntities();
List<MyCar> data = myDataBase.MyCars.OrderBy(o => o.Owner).ToList();
//dataGridView1.AutoGenerateColumns = false;
dataGridView1.DataSource = data;
const int index = 2; // Column Index for Color
List<string> myColor = myDataBase.Colors.Select(s => s.Color1).ToList();
var comboBoxColumn = new DataGridViewComboBoxColumn
{
DataSource = myColor,
DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing,
AutoComplete = true,
};
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
MessageBox.Show(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].EditType.ToString());
}
}
}