0

全部。

我目前正在开发一个 C# Winforms 项目。将数据应用到 DataGridView 后,我遇到了一个奇怪的问题,即让它们保持正确的格式。

基本上,我得到的是这个......

DataGridView dgMainTable;
DataTable dtOtherTable;

...

/* Add and format columns for BOTH objects.  They're almost the same except for column widths */

...

/*Add data one row at a time to dtOtherTable*/

...

//Here's the kicker...
dgMainTable.DataSource = dtOtherTable;

一旦我完成了所有这些,我希望 dgMainTable 会填充来自 dtOtherTable 的数据。但是,我得到的是一些奇怪的列集合,据我所知,两个表合并为一个表。所以,就我而言,我有六列而不是我期望的三列。

是的,我已经能够通过不格式化第一个表来解决这个问题。如果我为此注释掉代码,则数据会按预期分配,但是我无法控制第一个表结构。结构不应由表定义。鉴于我的代码结构,这只是一个糟糕的地方。如何在保留主表的结构和格式的同时将数据从另一个表移动到主 DataGridView?

4

1 回答 1

1

如果您自己设计dgMainTable并且想要保留它,则必须自己绑定数据并AutoGenerateColumns关闭(打开时可以,但在这种情况下,当您手动设置所有列时不需要)。我想你dgMainTable有 3 列Column1, Column2Column3你的对应列分别dtOtherTableCol1, 。您必须添加以下代码(在和之间手动绑定数据):Col2Col3dtOtherTabledgMainTable

dgMainTable.Columns["Column1"].DataPropertyName = "Col1";
dgMainTable.Columns["Column2"].DataPropertyName = "Col2";
dgMainTable.Columns["Column3"].DataPropertyName = "Col3";
//bind data
dgMainTable.DataSource = dtOtherTable;
于 2013-11-06T16:21:17.907 回答