Hallo
Ich möchte in meinem Programm ein Explorer-Fenster nachbilden - allerdings mit einem TreeView auf der linken Seite und 2 DataGridViews auf der rechten Seite, wobei das obere vom TreeView-Element abhängig ist und das untere vom ausgewählten Element des oberen DataGridViews abhängt.
Meine Vorgehensweise ist bisher folgende (auf Code verzichte ich hier, da dies kein Problem darstellt und nur verdeutlichen soll, was ich bisher tue):
1) Abfrage, die 4 Select-Statements beinhaltet
2) DataAdapter füllen (Verwenden von TableMappings)
3) jeweils 2 DataColumns der Tabellen der Relation erstellen
4) diese zur Relation zusammenfassen
Somit habe ich 4 DataRelations. Bis hierher ist alles wunderbar.
Jetzt folgt eine 3-fache foreach-Schleife, um
1) die ParentNodes des TreeView zu füllen
2) die ChildNodes des TreeView zu füllen
3) das obere DataGridView in Abhängigkeit vom TreeView-Element füllen
4) das untere DataGridview in Abhängigkeit vom 1.DGV-Element füllen
Ich scheitere gerade an Schritt 3. Hier mein Ansatz:
Die Reihenfolge lautet also: Hardwaretyp-Hardware-Lizenz-Software (so auch der Datenbankentwurf)
Mein Problem ist also zuerst, dass ich nicht weiß, wie ich das obere DataGridView in Abhängigkeit vom TreeView-Element füllen kann (mit Hilfe der bisherigen Situation über DataRelations); dann: wie mache ich das untere DataGridView vom oberen abhängig.
Vielleicht gibts auch ne Möglichkeit, das DataGridView zeilenweise zu füllen?
Kann mir da jemand helfen?
Danke und viele Grüße
monik.
Ich möchte in meinem Programm ein Explorer-Fenster nachbilden - allerdings mit einem TreeView auf der linken Seite und 2 DataGridViews auf der rechten Seite, wobei das obere vom TreeView-Element abhängig ist und das untere vom ausgewählten Element des oberen DataGridViews abhängt.
Meine Vorgehensweise ist bisher folgende (auf Code verzichte ich hier, da dies kein Problem darstellt und nur verdeutlichen soll, was ich bisher tue):
1) Abfrage, die 4 Select-Statements beinhaltet
2) DataAdapter füllen (Verwenden von TableMappings)
3) jeweils 2 DataColumns der Tabellen der Relation erstellen
4) diese zur Relation zusammenfassen
Somit habe ich 4 DataRelations. Bis hierher ist alles wunderbar.
Jetzt folgt eine 3-fache foreach-Schleife, um
1) die ParentNodes des TreeView zu füllen
2) die ChildNodes des TreeView zu füllen
3) das obere DataGridView in Abhängigkeit vom TreeView-Element füllen
4) das untere DataGridview in Abhängigkeit vom 1.DGV-Element füllen
Ich scheitere gerade an Schritt 3. Hier mein Ansatz:
Code:
foreach (DataRow rowHWTypes in ds.Tables["hwtypes"].Rows) { //HW-Typen auslesen als ParentRows TreeNode nodeHWTypes = new TreeNode(); nodeHWTypes.Text = rowHWTypes["hwtype"].ToString(); treeView.Nodes.Add(nodeHWTypes); foreach (DataRow rowHardware in rowHWTypes.GetChildRows(ds.Relations["TypeToHW"])) { //Hardwarenamen auslesen aus den Childrows TreeNode nodeHardware = new TreeNode(); nodeHardware.Text = rowHardware["hwname"].ToString(); nodeHWTypes.Nodes.Add(nodeHardware); foreach (DataRow rowLicence in rowHardware.GetChildRows(ds.Relations["HWtoLicence"])) { //zugehörige Lizenz in Abhängigkeit des ausgewählten Hardwarenamens dgvLicence.DataSource = ds; dgvLicence.DataMember = "licence"; //Software-DGV //zum Lizenzschlüssel zugehörige Software DataRow rowSoftware; rowSoftware = rowLicence.GetParentRow(ds.Relations["LicenceToSW"]); } } }
Mein Problem ist also zuerst, dass ich nicht weiß, wie ich das obere DataGridView in Abhängigkeit vom TreeView-Element füllen kann (mit Hilfe der bisherigen Situation über DataRelations); dann: wie mache ich das untere DataGridView vom oberen abhängig.
Vielleicht gibts auch ne Möglichkeit, das DataGridView zeilenweise zu füllen?
Kann mir da jemand helfen?
Danke und viele Grüße
monik.