Avatar billede iakob Nybegynder
20. oktober 2006 - 11:16 Der er 1 løsning

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.
Avatar billede iakob Nybegynder
20. oktober 2006 - 13:46 #1
AHA! Jeg fandt svaret.

dvg.BindingContext = this.BindingContext;

det skal stå et eller andet sted i proceduren!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester