Problem mit DataGridViewRow (Collection) und .add

schachmat

Erfahrenes Mitglied
Hab auch mal wieder meine Programmierphase und auch gleich schon wieder ein Problem:

Ich hab ein ziemlich komplex aufgebautes DataGridView und möchte darin nun eine Kopieren, Ausschneiden, Einfügen Funktionalität für ein oder mehrere Zeilen hinzufügen.

Kopieren und Ausschneiden funktioniert. Die Werte werden über eine eigene Klasse in XML umgewandelt und dann in der Zwischenablage gespeichert. Der Teil klappt prima. Beim Einfügen aber gibts Probleme...

Das einlesen der XML-Werte in die Klasse funktioniert prima, aber das ausgeben als DataGridViewRow ist noch nicht so ganz... sagen wir perfektioniert:

Code:
Friend Function ToRow() As DataGridViewRow
            Dim temp As New DataGridViewRow
            Dim tmpc As DataGridViewCell = CType(New DataGridViewTextBoxCell, DataGridViewCell)
            tmpc.Value = _Member1
            temp.Cells.Add(tmpc)
            tmpc = CType(New DataGridViewTextBoxCell, DataGridViewCell)
            tmpc.Value = _Member2
            temp.Cells.Add(tmpc)
            tmpc = CType(New DataGridViewTextBoxCell, DataGridViewCell)
            tmpc.Value = _Member3
            temp.Cells.Add(tmpc)
            'usw.... es werden auch in drei Fällen nicht die .Value Werte sondern .Tag "bespeichert", da der Wert was anderes ist, als das, was angezeigt werden soll (z.B. Tag="100" Wert="100 Min.")
            Return temp
        End Function

Da kann man bestimmt noch einiges verbessern;) auch wenn das nicht so wichtig is... Hauptsache es funktioniert. Und dieser Codeteil funktioniert auch. Warum habe ich ihn dann aber gepostet? Weil ich vermute, dass der Fehler darauf basiert. Doch dazu gleich mehr...

Hier nun der entscheidende Codeschnipsel:

Code:
For Each Reihe As Xml.XmlNode In 
            Dim blub As New MeineKlasse(mov.OuterXml)
            Dim test As DataGridViewRow = blub.ToRow
            'Beide folgenden Zeilen funktionieren nicht
            temp.Add(test)
            temp.Insert(0, test)
        Next Reihe

Bei der ersten Zeile gibts folgende Exception:

ArgumentOutOfRangeException
"Der angegebene Zeilenindex liegt außerhalb des definierten Bereichs.
Parametername: rowIndex"

test.rowIndex gibts nicht, aber test.Index is laut Tooltip dasselbe und das ist readonly auf -1 festgelegt.... kann dass an der oben gezeigten Erzeugung der DataGridViewRow liegen?

Bei der zweiten Zeile gibts ne andere Ausnahme:

InvalidOperationException
"Nach der neuen Zeile, für kein Commit durchgeführt wurde, können keine Zeilen eingefügt werden." (microsoft kann kein deutsch ;))

Bei der Fehlermeldung kann ich mir überhaupt nicht vorstellen was ihm nicht passt...

Ich wäre sehr dankbar für Lösungen, Verbesserungen (Für die ToRow-Funktion ;)) oder aber auch Workarounds zum Kopieren, Ausschneiden und Einfügen

Dankeschön.
 
Zurück