的DataGridView +组合框+从2个表

问题描述:

数据我有2个表:的DataGridView +组合框+从2个表

第一:

id | 2ndTableId | Name 

二:

id | name 

我希望他们在的dataGridView显示为列: 1 - >组合框与第二表中的名称列表(带有一些where子句),选定的值=从第一个表'2ndTableId' 2->名称从第一个表

此外我想保留在ComboBox 2值(id和名称)。我使用Id和Name属性创建了自己的MyComboBox类,但出现错误:

System.argumentException:DataGridViewComboBoxCell值无效。

我不知道如何管理这个。你可以帮我吗?

我有一个相同的场景。我为两个表创建了两个DTO类并分配它们。 创建两个类

public class Table1 
{ 
    public int Id { get; set; } 
    public int Table2Id { get; set; } 
    public string Name { get; set; } 
} 

public class Table2 
{ 
    public int Table2Id { get; set; } 
    public string Table2Name { get; set; } 
} 

然后在你创建一个DataGridView与四列。

Column1=> Name:idDropDown Default Text Style:DataGridViewCellStyle { } 
Column 2=> Name:Table1Id DataPropertyName:Table1Id 
Column 3=> Name:Table2Id DataPropertyName:Table2Id 
Column 4=> Name:Tbale1Name DataPropertyName:Tbale1Name 

然后用你需要的数据生成两个列表。

List<Table1> dropDownList; 
List<Table2> gridData; 

在你的代码使用方法如下

idDropDown.DisplayMember="Table2Name"; 
idDropDown.ValueMember="Table2Id"; 
idDropDown.DataSource=dropDownList; 

gridview1.AutoGenerateColumns = false; 
gridview1.DataSource=gridData; 

最主要的是我们要设置的AutoGenerateColumns为False在此代码