Forum: PC-Programmierung Datagridview zeigt Daten aus Array nicht an [VB2010]


von Seek1 (Gast)


Lesenswert?

Hallo Leute,

Habe ein Datagridview erstellt, das ich in ein Array binden möchte.
Die Variable ActivePLC kann sich aber jederzeit ändern.
Im Control habe ich Column vergeben, die ich glei wie die 
Strukturvaraibeln genannt habe.
(Auch beim DataPropertyName)
Nun werden zwar 3 Zeilen angezeigt, aber diese sind leer.
Trage ich etwas im Datagridview ein, so wird das nicht in das Array 
übernommen.
Die Strukturen sind in diesem Beispiel verklinert worde und sind 
normalerweise weit grösser.

Wo liegt der (Denk)Fehler ?

Public Class Form1



    Public Structure TagStruct
        Dim Address As String
        Dim Symbol As String
        Dim Description As String
        Dim Type As String
    End Structure
    Public Structure PLCConfig
        Dim Tags() As TagStruct
    End Structure

    Dim PLC(10) As PLCConfig
    Dim ActivePLC As Integer

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
        FillWithDefaults()
        ActivePLC = 1
        DataGridView1.DataSource = PLC(ActivePLC).Tags
        DataGridView1.Update()
    End Sub

    Sub FillwithDefaults()
        For i = 0 To 10
            ReDim PLC(i).Tags(2)
            For j = 0 To 2
                PLC(i).Tags(j).Address = "Adresse" & j
                PLC(i).Tags(j).Symbol = "Symbol " & j
                PLC(i).Tags(j).Description = "Tag " & j
                PLC(i).Tags(j).Type = "Type " & j
            Next
        Next
    End Sub

End Class

von Matze (Gast)


Lesenswert?

Hi,
Irgendwie würde ich soetwas wie DataGridView1.databind () in der Nähe 
des .update () vermissen.
Was sagt denn der Debugger zum Inhalt des Arrays vor der datasource 
Zuweisung?

von Seek1 (Gast)


Angehängte Dateien:

Lesenswert?

.databind wird nicht erkannt :-(

Anbei Bilder des Debuggers.
Habe auch mal das ganze Projekt angehangen.

Irgendwie unverständlich, da ja die Daten übergeben werden.

von Robert C. (anykey)


Lesenswert?

Versuch es mal mit eine List(Of T) und verwende anstatt der Struct ne 
Klasse, die Liste bindest du dann an ne Bindingsource die du wiederum an 
das DataGridView bindest. Damit sollte es klappen.

Gruß Robert

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.