嘿大家!我想这是我在*.com上的第一篇文章:-)
我一直有这个问题.
为了简单起见,假设我们有2个名为“books”和“categories”的数据库表,其中包含以下模式:
books(id, title, catId)
categories(id, catName)
显然,“books”表中的“catId”字段是外键,并指定书所属的类别.
我已经创建了必要的LinQ to Sql类并创建了必要的bindingSource对象.
我想要做的是显示DataGridView对象中的所有书籍.我希望它有一个名为“Category”的列,其类型为DataGridViewComboBoxColumn,包含所有现有类别,并且每本书都显示特定书所属的类别.用户可以通过在组合框中选择另一个类别来重新分配图书的类别.
我已经设法完成了我想要的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