问题描述
是否可以在表 B 的 DataGridViewComboBoxColumn
中显示例如表 A 的 DataGridViewComboBoxColumn
值?
我已经尝试使用 DataGridViewComboBoxColumn
A 的名字(name as in defined Name = "Something")传递给 DataMember DataGridViewComboBoxColumn
"B",但它似乎不起作用,因为它抛出错误,找不到“Something”列。
解决方法
场景:
您有以下表格:
Employee
FirstName - e.g. "John"
DepartmentID - e.g. 1 (for Tech)
Department
ID - e.g. 1
Name - e.g. Tech
并且您想要一个带有组合框列的 datagridview 来显示/选择部门
- 您的 datagridview 绑定到员工的数据表
- 您已经创建了一个 datagridviewcomboboxcolumn (DGVCBC)
您应该设置您的 DGVCBC,使其具有:
-
.DataSource
= 保存部门数据的数据表 -
.ValueMember
= 保存部门 ID 的列的字符串名称(在部门表中),例如我的例子中的“ID” -
.DisplayMember
= 保留部门名称的列的字符串名称(在部门表中),例如我的例子中的“ID” -
.DataMember
= 保留员工部门 ID 的列的字符串名称(例如,在我的示例中为“DepartmentID”)
您可以在设计器或代码中进行此设置。这样设置,DGVCBC 将从DepartmentID 中读取id,在departmentDatatable.ID 中查找该ID,在departmentDatatable.Name 中显示相关名称。当您将组合更改为新值时,它会将选定的新 ID 值应用到 DepartmentID,从而更改员工的部门