Ik heb een MDI app met een treeviewlist. Bij het klikken op een item in de treeviewlist, moet het juiste childform worden geopend. Het is een standaard form, alleen de data die in de verschillende controls staan (textboxen, dropdownboxen etc.) is anders. Deze data wordt opgeslagen in een datatable. Voor elke node wordt in een aparte row bijgehouden wat de data is.
Nu wilde ik per control de data binden aan die datatable. Dat gebeurt nu als volgt:
Column(0) is de kolom die de albumnaam bevat, die in de betreffende textbox moet worden ingevuld.
Nu kan ik echter een nieuwe instantie van hetzelfde form openen. Deze hoort bij een andere node in de treeview, maar de databinding blijft met de huidige code weer op dezelfde row (de bovenste). Hoe krijg ik het echter zover dat voor ieder childform de juiste rij wordt uitgelezen, i.p.v. telkens de bovenste?
Ik kwam er in elk geval niet uit, ik had bijv. deze geprobeerd:
De naam van het childform is hetzelfde als het indexnummer van de betreffende node. En dat nummer is weer gelijk aan de betreffende row (dus index=33 van de node, dan ook row=33). Alleen zo krijg ik met subnodes erbij (die een compleet ander venster moeten krijgen en niet in deze datatable zijn opgenomen maar in een andere) ook enorm veel lege plekken. Maar ik weet niet hoe ik de nodes een ander uniek kenmerk kan meegeven, want de naam bijv. is standaard Nieuw Album en er kunnen dus meerdere nodes dezelfde naam dragen. Hier zoek ik ook nog een oplossing voor.
Dus mijn twee vragen:
Hoe bind ik de data aan een exacte locatie (column en row als parameters) en hoe krijg ik een uniek kenmerk voor elk van de afzonderlijke nodes op elk level?
Alvast bedankt voor de hulp!
Nu wilde ik per control de data binden aan die datatable. Dat gebeurt nu als volgt:
Visual Basic .NET:
1
| tbxalbumnaam.DataBindings.Add("Text", tabel, tabel.Columns(0).ColumnName) |
Column(0) is de kolom die de albumnaam bevat, die in de betreffende textbox moet worden ingevuld.
Nu kan ik echter een nieuwe instantie van hetzelfde form openen. Deze hoort bij een andere node in de treeview, maar de databinding blijft met de huidige code weer op dezelfde row (de bovenste). Hoe krijg ik het echter zover dat voor ieder childform de juiste rij wordt uitgelezen, i.p.v. telkens de bovenste?
Ik kwam er in elk geval niet uit, ik had bijv. deze geprobeerd:
Visual Basic .NET:
1
| tbxalbumnaam.DataBindings.Add("Text", tabel, tabel.Rows.Item(Me.Name).Item(0)) |
De naam van het childform is hetzelfde als het indexnummer van de betreffende node. En dat nummer is weer gelijk aan de betreffende row (dus index=33 van de node, dan ook row=33). Alleen zo krijg ik met subnodes erbij (die een compleet ander venster moeten krijgen en niet in deze datatable zijn opgenomen maar in een andere) ook enorm veel lege plekken. Maar ik weet niet hoe ik de nodes een ander uniek kenmerk kan meegeven, want de naam bijv. is standaard Nieuw Album en er kunnen dus meerdere nodes dezelfde naam dragen. Hier zoek ik ook nog een oplossing voor.
Dus mijn twee vragen:
Hoe bind ik de data aan een exacte locatie (column en row als parameters) en hoe krijg ik een uniek kenmerk voor elk van de afzonderlijke nodes op elk level?
Alvast bedankt voor de hulp!
[ Voor 11% gewijzigd door The__Virus op 24-04-2007 13:37 ]