Laden...

Liste in Objekt soll gekippt in DGV angezeigt werden.

Erstellt von Fracoon vor 15 Jahren Letzter Beitrag vor 15 Jahren 2.198 Views
F
Fracoon Themenstarter:in
85 Beiträge seit 2007
vor 15 Jahren
Liste in Objekt soll gekippt in DGV angezeigt werden.

verwendetes Datenbanksystem: Postgres

Hi@all...

ich hoffe ich bin im richtigen Forum. Wenn nicht bitte verschieben.

Es geht um Folgendes :

Ich habe eine Klasse die eine List<> von einer anderen Klasse enthält. Etwa so :


class Probe
{
      public string Journalnummer;
      public string Schale;
      public List<Messung> messungen;

}

class Messung
{
      public string name;
      public string ergebnis;
}

Beispiel mit Daten:



Probe probe1 = new Probe();
probe1.Journalnummer = "1002";
probe1.Schale = "A1"

Messung messung1 = new Messung();
messung1.name = "Leer";
messung1.ergebnis = "11.11";

Messung messung2 = new Messung();
messung2.name = "Voll";
messung2.ergebnis = "11.11";

probe1.messungen.add(messung1);
probe1.messungen.add(messung2);

Probe probe2 = new Probe();
probe2.Journalnummer = "1003";
probe2.Schale = "A4"

Messung messung3 = new Messung();
messung3.name = "Leer";
messung3.ergebnis = "11.11";

Messung messung4 = new Messung();
messung4.name = "Verbrannt";
messung4.ergebnis = "11.11";

probe2.messungen.add(messung3);
probe2.messungen.add(messung4);

Jetzt würde ich gerne in einer Tabelle wie die im Anhang haben. Also für jede Messung in der Liste muss (wenn nicht schon von einer anderen Probe erstellt) eine Spalte erstellt werden. Am besten noch mit DataBinding, dass die Messungen beim Eintragen automatisch in der Probe erstellt werden.

In meinem Beispiel fehlt z.B. bei der zweiten Probe der "Voll" Wert aber ein "Verbrannt" werd ist hinzugekommen der wiederum in der ersten Probe fehlt.

Ich hoffe ich habe mein anliegen klar ausgedrückt. Ich hab auch schon sehr viel über Google und im Forum gesucht. Aber ohne erfolg.. Kennt jemand eine Möglichkeit dies zu realisieren?

193 Beiträge seit 2007
vor 15 Jahren

Da die namen der Messungen dynamisch sind wird das wahrscheinlcih sehr schwer.

Sind nur die drei Namen (verbrannt, voll, leer) vorhanden so würde ich ein neues Objekt, das aus Journalnummer, Schale, leer, voll und verbrannt besteht, ertellen und dieses in eine Liste stecken und anzeigen lassen.

Ansonsten muß das ganze komplett generisch sein.

**:::{style="color: darkblue;"}If debugging is the process of removing bugs, then programming must be the process of putting them in.){darkblue}** Dijkstra
F
Fracoon Themenstarter:in
85 Beiträge seit 2007
vor 15 Jahren

Ansonsten muß das ganze komplett generisch sein.

Genau. Das ist das Problem.

Ich habe nichtmal ansatzweise eine Idee wie ich es realisieren könnte.

3.430 Beiträge seit 2007
vor 15 Jahren

Hi,

ich würde das so machen*die Daten in eine Liste oder Tabelle schreiben (z.B. myTable) *Journalnummer und Schale hast du ja immer, als kann man die direkt reinschreiben *dann gehst du alle Items der liste Messungen durch und kontrollierst bei jedem Item ob diese Spalte schon in myTable existiert. Wenn ja, dann einfach den wert da hineinschreiben. Wenn das nicht so ist, dann musst du der Table eine neue Spalte hinzufügen. In diese schreibst du dann den Wert *hast du ein objekt der Klasse Probe durch, so gehts direkt mit dem nächsten weiter. Die Prozedur beginnt also von vorne. Dabei musst du bei der myTable natürlich eine neue Zeile nehmen, damit die Werte nicht überschrieben werden. *Am ende musst du die Datenquelle natürlich noch an den DataGridView binden =)

Ich hoffe, dass ich dir ein wenig helfen konnte

mfg
Michael

F
Fracoon Themenstarter:in
85 Beiträge seit 2007
vor 15 Jahren

Am ende musst du die Datenquelle natürlich noch an den DataGridView binden =)

Genau diese möglichkeit würde ich mir doch dann nehmen?!?! Mit Databinding hat das ja nichts mehr zu tuen. Und mit einem DataAdapter kann ich dann auch nichtm ehr arbeiten?!?!

3.430 Beiträge seit 2007
vor 15 Jahren

Hi,

Genau diese möglichkeit würde ich mir doch dann nehmen?!?! Mit Databinding hat das ja nichts mehr zu tuen. Und mit einem DataAdapter kann ich dann auch nichtm ehr arbeiten?!?!

Wieso denn nicht.
Du kannst ja einfach eine DataTable oder auch ein anderes Objekt als Datenquelle des DataGridViews festlegen.
Damit brauchst du die Daten dann nicht direkt (manuell) in den DataGridView schreiben.

Gruss
Michael

F
Fracoon Themenstarter:in
85 Beiträge seit 2007
vor 15 Jahren

Das ist mir klar. Die Daten liegen jedoch nicht in einer Datatable sondern in Objekten vor (siehe Oben). Also müsste ich die Daten zuerst aus den Objekten in eine Datatable kippen.

F
Fracoon Themenstarter:in
85 Beiträge seit 2007
vor 15 Jahren

Ich glaub ich hab eine echt tolle Lösung gefunden. Wenn alles funzt und ich genug Zeit habe stell ich sie hier noch rein.