datagridview中缺少外键列

时间:2018-10-12 14:24:04

标签: c# winforms datagridview

我想在datagridview中检索数据表的所有数据。

dataGridView1.DataSource = dataTable1;

好的,那确实很简单,但是问题是,并非所有列都已创建。所有的外键列都丢失了。这似乎是默认行为。我不想关闭AutoGenerateColumns属性并手动创建列。

是否有一种简单的方法可以在datagridview中生成所有列?

1 个答案:

答案 0 :(得分:0)

我找到了适合我的解决方案...

对此行为负责的是该列的列映射属性。将其从 MappingType.Hidden 切换到 MappintType.Element 可以防止内部列生成算法对列进行过滤

List<DataColumn> ldc_recover = new List<DataColumn>(); 

foreach (DataColumn dataColumn in dataTable1.Columns)
{
    if (dataColumn.ColumnMapping == MappingType.Hidden)
    {
        dataColumn.ColumnMapping = MappingType.Element;
        ldc_recover.Add(dataColumn);
    }
}

// Fill the datagridview with data from datatable
dataGridView1.DataSource = dataTable1;

// Restore the previous columnmapping-property
foreach (DataColumn dc_enum in ldc_recover)
{
    dc_enum.ColumnMapping = MappingType.Hidden;
}