私はVS2008でWindows Formsアプリケーションを開発しています。 Iは、未知を表示するが、このようなコードを使用して、フォーム上のDataGridViews少数:動的に読み込まれたDataGridViewをどのようにデータバインドできますか?
foreach (QueryFilter f in Query.Filter)
{
DataGridView grid = CreateGridView(String.Format("GridView{0}", filters.Count));
grid.Location = new System.Drawing.Point(3, 9 + (filters.Count * grid.Height + 9));
BindingList<QueryFilterNode> nodes = new BindingList<QueryFilterNode>();
foreach (QueryFilterNode node in f)
nodes.Add(node);
grid.DataSource = nodes;
panel1.Controls.Add(grid);
filters.Add(nodes);
}
グリッド(単数または複数)は、パネルに追加されるが、内部のデータが表示されません。私の推測では、DataGridView_ColumnAddedイベントが発生しないため、DataSourceプロパティが実際にグリッドにバインドされていないことを設定しています。
QueryFilterとQueryFilterNodeは単なるPOCOであり、もちろんデータを含んでいます。完全期すため
のDataGridViewの構築:
private DataGridView CreateGridView(string name)
{
DataGridView grid = new DataGridView();
grid.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
grid.Name = name;
grid.Size = new System.Drawing.Size(484, 120);
grid.ColumnAdded += new System.Windows.Forms.DataGridViewColumnEventHandler(this.dataGridView_ColumnAdded);
return grid;
}
BindingListはどのようにバインドされていますか? BindingList.DataSourceプロパティを設定する必要があると思います。 – NYSystemsAnalyst