厳密に型指定されたデータテーブルに基づく LINQ 結果に DataGridView をバインドする際に問題が発生しています。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);
機能する/機能しないということは、最初の例では、データグリッドビューがデータテーブルのすべての列を自動生成し、すべての結果を表示することを意味します。2 番目の例では、エラーは発生しませんが、DataSource をまったく割り当てていないかのように、datagridview は完全に空のままになります。
このサイトや他のサイトで読んだことから、私がしていることに問題はないはずですが、とにかく正しい結果を得ることができません. 何か案は?役立つ情報がさらに必要な場合は、お知らせください。
Edit1: 追加の詳細。
次の行を試しましたが、すべて成功しませんでした:
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 データ ソース ウィザードによって提供されるものです。