C#DataGridViewComboBoxColumn绑定问题

嘿大家! 我想这是我在StackOverFlow.com上的第一篇文章:-)

我一直有这个问题。 为了简单起见,假设我们有2个名为“books”“categories”的数据库表,其中包含以下模式:

书籍(id,title,catId)
类别(id,catName)

显然, 书籍”表中的“catId”字段是外键,并指定书籍所属的类别。

我已经创建了必要的LinQ to Sql类并创建了必要的bindingSource对象。 我想要做的是显示DataGridView对象中的所有书籍。 我希望它有一个名为“Category”的列,其类型为DataGridViewComboBoxColumn,包含所有现有类别,并且每本书都显示特定书所属的类别。 用户可以通过在combobox中选择另一个类别来重新分配图书的类别。

我已经成功完成了我想要的ComboBox ,它可以正常工作。 但是当谈到DataGridView时,我无法理解它。

任何帮助将不胜感激我已经花了几天时间想出办法但到目前为止没有运气:-(

这应该工作:

// create the column (probably better done by the designer) DataGridViewComboBoxColumn categoryColumn = ... // bind it categoryColumn.DataSource = db.Categories.ToList(); categoryColumn.DisplayMember = "catName"; // display category.catName categoryColumn.ValueMember = "id"; // use category.id as the identifier categoryColumn.DataPropertyName = "catId"; // bind the column to book.catId