2016-05-18 8 views
0

Ich habe eine vb.net Programm arbeite ich an, wo ich eine Liste von einer benutzerdefinierten Klasse erstellt habenBind Liste (Custom)

Public Shared ImageList As List(Of ZImages) 

Public Class ZImages 
    Public ID As Integer 
    Public FileName As String 
    Public GreyIntenStDev As Double 
    Public GreyIntenMean As Double 
    Public GreyIntenMin As Double 
    Public GreyIntenMax As Double 
End Class 

In meinem Code ich Schleife durch Bilder, Graustufen Intensität Extrahieren Informationen, die in die jeweiligen Felder darunter gehen. Was ich jetzt in Echtzeit machen möchte, besteht darin, ein Diagramm basierend auf den Informationen in der Liste zu füllen.

Ich habe einige Sachen gesehen, die über das Binden von Arrays an ein Diagramm-Steuerelement sprechen, aber ich frage mich, ob jemand mir helfen kann, die X-Achse an die ID von ImageList und die Y-Achse an GreyIntenStDev zu binden.

Ich dachte, ich könnte etwas wie das unten verwenden, aber das scheint nicht zu funktionieren;

Könnte mir jemand in die richtige Richtung zeigen, da die meisten Beispiele, die ich gesehen habe, über Arrays, nicht strukturierte Listen sprechen.

Antwort

0

Sie können LINQ verwenden, um die IEnumerables zu erstellen, an die Sie binden möchten. Die Select Methode kann die Liste von ZImages in die gewünschte Form projizieren.

Dim ids As IEnumerable = ImageList.Select(Function(x) x.ID) 
Dim greyIntents as IEnumerable = ImageList.Select(Function(x) x.GreyIntenStDev) 

Chart1.Series(0).Points.DataBindXY(ids, greyIntents) 
+0

Wie funktioniert das in Bezug auf, wenn die Liste aktualisiert wird, nehme ich an, dann muss die Methode erneut aufgerufen werden? – user1829564

+0

Es würde, ja. Eine weitere Option wäre die Verwendung des überladenen 'DataBindXY', mit dem Sie Spaltennamen angeben können. 'Chart1.Series (0) .Points.DataBindXY (ImageList," ID ", ImageList," GreyIntenStDev ")' Aber ich glaube, Sie wären im selben Boot, wenn es um Updates geht. Ich glaube nicht, dass es irgendeine Art von Änderungsbenachrichtigung verwendet, oder? –