我在将 DataGridView 绑定到基于强类型数据表的 LINQ 结果时遇到问题。直接绑定到 DataTable 工作正常。工作示例:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// TODO: This line of code loads data into the 'MYDSDataSet.MYTABLE' table. You can move, or remove it, as needed.
this.MYTABLETableAdapter.Fill(this.MYDSDataSet.MYTABLE);
this.dataGridView1.DataSource = this.MYDSDataSet.MYTABLE;
}
}
使用以下行不起作用:
this.dataGridView1.DataSource = this.MYDSDataSet.MYTABLE.Select(x => x);
通过工作/不工作,我的意思是在第一个示例中,我的 datagridview 将自动生成数据表的所有列并向我显示所有结果。在第二个示例中,我不会收到任何错误,但我的 datagridview 将完全为空,就好像我根本没有为其分配 DataSource 一样。
从我在本网站和其他网站上阅读的内容来看,我应该对我正在做的事情没有任何问题,但无论如何我都无法获得正确的结果。有任何想法吗?如果您需要更多可以提供帮助的信息,请告诉我。
编辑 1:其他详细信息。
我尝试了以下几行,但均未成功:
this.dataGridView1.DataSource = this.MYDSDataSet.Tables["MYTABLE"].AsEnumerable().Select(x => x);
this.dataGridView1.DataSource = this.MYDSDataSet.MYTABLE.AsEnumerable().Select(x => x);
this.dataGridView1.DataSource = this.MYDSDataSet.MYTABLE.Select(x => x).ToList();
this.dataGridView1.DataSource = from x in this.MYDSDataSet.MYTABLE select x;
调试时,上面的所有结果数据子集都包含正确的数据/行数。
我的强类型数据表是由 Visual Studio 2010 数据源向导提供的。