Je développe une application Windows Forms dans VS2008. Je veux afficher un inconnu, mais petit nombre de DataGridViews sur un formulaire, en utilisant le code comme ceci:Comment puis-je documenter DataGridViews dynamiquement chargé?
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);
}
La grille (s) sont ajoutés au panneau, mais les données à l'intérieur ne sont pas affichées. Je suppose que la définition de la propriété DataSource ne lie pas réellement la grille, car (par exemple) l'événement dataGridView_ColumnAdded n'est pas déclenché.
QueryFilter et QueryFilterNode ne sont que des POCO et contiennent des données bien sûr.
Pour l'amour complet de la construction du 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;
}
À quoi est lié le BindingList? Je crois que vous devez définir la propriété BindingList.DataSource. – NYSystemsAnalyst