Databinding med datagridview
Jeg har en applikation, der basalt set består af et treeview til venstre og et datapanel til højre. Når man klikker på en node i treeviewet skal man have vist data for det tilhørende objekt OG man skal have vist dens relationer i datagrids.Dvs i treeviewet kan man f.eks vælge mellem geografiske områder, kunder og produkter. Hvis man vælger et geografisk område så skal man i datapanelet kunne se navnet på området i en tekstboks og så skal man have en datagrid der viser kunder i området. Vælger man en kunde i treeviewet skal man kunne se kundens navn og eventuelle bemærkninger i datapanelet og så skal man have en datagrid for produkter kunden har købt, en anden datagrid for kontaktpersoner hos kunden.
Jeg har derfor lavet en panel, som generer disse datagridviews ud fra datarelationer i mit dataset (faktisk fra en DataViewManager (this.dvManager) som er datasettets defaultdataviewmanager).
Mit problem er at de oprettede datagridviews ikke viser indhold ud fra hvilket objekt der er vist i træet (og som får dets data vist i teksboksene). Så vidt jeg kan se får jeg bare returneret den første række fra childtables i datarelationerne.
Her er metoden som opretter en datagridview:
private DataViewGrid AddDataGrid(DataRelation dataRelation)
{
DataViewGrid dvg = new DataViewGrid(); //(this.theDataRow, relation);
dvg.Location = gridPosition;
dvg.dataGridView1.DataSource = this.dvManager;
string datamember = dataRelation.RelationName;
dvg.dataGridView1.DataMember = POTables.GetRelationFullName(parentTable, childTable);
this.gridPosition = new Point(dvg.Location.X, dvg.Location.Y + dvg.Size.Height + 15);
this.Controls.Add(dvg);
dvg.dataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
dvg.dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing;
return dvg;
}
Data i teksboksene opdateres godt nok. Det er kun datagridviews som volder mig problemer.
