DataGridView und Array

11/01/2010 - 13:39 von Josef Morlo | Report spam
Hallo,

Ich hole mir über ein Ereignis ein Array aus einer Klasse, das die
Eckpunkte eines gezeichneten Polygons enthàlt.
Diese lasse ich mir dann in einer DataGridView anzeigen.

Private mArray As Point()

Private Sub frm_SetPointArray(ByVal arPts() As System.Drawing.Point) _
Handles frm.SetPointArray
mArray = arPts
Dim bs As New BindingSource
bs.DataSource = mArray
mDgv.DataSource = bs
End Sub

Wenn ich die Punktkoordinaten in eine DataTable einlese, diese in eine
DataView einbinde, kann ich sie im Grid bequem editieren und anschließend
wieder in das Array zurückschreiben. Das funktioniert soweit, das Polygon
wird auch dann brav aktualisiert.

Meine Frage:
Könnte ich auch auf dem zitierten Codefragment aufsetzen und die
Punktkoordinaten *direkt* in dem an das Array gebundenen DataGridView
bearbeiten? Wie würde das gehen?

Danke für Hinweise und Gruß
Josef Morlo
 

Lesen sie die antworten

#1 Elmar Boye
11/01/2010 - 18:51 | Warnen spam
Hallo Josef,

"Josef Morlo" schrieb ...
Ich hole mir über ein Ereignis ein Array aus einer Klasse, das die
Eckpunkte eines gezeichneten Polygons enthàlt.
Diese lasse ich mir dann in einer DataGridView anzeigen.

Wenn ich die Punktkoordinaten in eine DataTable einlese, diese in eine
DataView einbinde, kann ich sie im Grid bequem editieren und anschließend
wieder in das Array zurückschreiben. Das funktioniert soweit, das Polygon
wird auch dann brav aktualisiert.

Meine Frage:
Könnte ich auch auf dem zitierten Codefragment aufsetzen und die
Punktkoordinaten *direkt* in dem an das Array gebundenen DataGridView
bearbeiten? Wie würde das gehen?



Damit das funktionieren würde, müsste Point INotifyPropertyChanged
implementieren und für Änderungen an der Auflistung selbst brauchst
Du IBindingList, was z. B. BindingList(Of T) implementiert.
Siehe: http://msdn.microsoft.com/de-de/lib...17s4b.aspx
"Auf Datenbindung bezogene Schnittstellen"

Da das wiederum auf eine Konvertierung hinauslàuft, kannst Du
genauso eine Konvertierung zur DataTable und zurück implementieren.
Denn die daraufbasierende DataView, die die BindingSource verwendet,
kann das alles schon.

Gruß Elmar

Ähnliche fragen