Laden...

DataGridView: List<string> in Zelle darstellen

Erstellt von da_user vor 8 Jahren Letzter Beitrag vor 8 Jahren 1.017 Views
D
da_user Themenstarter:in
94 Beiträge seit 2008
vor 8 Jahren
DataGridView: List<string> in Zelle darstellen

Hi,

Ich habe eine Klassenliste, deren Objekte ebenfalls wiederum eine Liste vom Typ List<string> enthalten:
(Pseudocode):


class1 {
public string Titel;
public List<string> Pfade;
}

class2
{
public List<class1> Elemente;
}

Diese Klasse kann ich jetzt relativ einfach in mein DataGridView schieben:

DataGridView1.DataSource = new class2();

Das Problem: Das DataGridView zeigt nur die Spalte Titel an, nicht aber die Spalte Pfade. Versuche ich die Spalte Pfade mit

DataGridView1.Columns["Pfade"].Visible = true;

sichtbar zu machen, erhalte ich eine > Fehlermeldung:

System.NullReferenceException

Die class1 enthält natürlich viel mehr Felder, und bei weiten sollen nicht alle dieser Felder angezeigt werden. Meine erste Idee war entsprechend, eine spezielle Klasse anzulegen, die nur die Felder enthält, die angezeigt werden müssen. Bei der "konventierung" könnte ich dann die List<string> in einen String umsetzten und die einzelenen ListElemente durch ein Trennzeichen oder NewLine trennen. Bei Bedarf jedenfalls, den nicht alle Pfad-Elemente enthalten mehrere Strings.
Aber der ganze Kram der da dranhängt, macht mir irgendwie Angst... X(

Gibt es einen anderen Weg?
Meine Lieblingslösung wäre, dass, wenn mehrere List-Elemente vorliegen, in der jeweilligen Zeile ein TreeView angezeigt wird, bei dem das erste List-Element quasie die "Überschrift" bildet.

Irgendein Tutorial würde mir, denke ich, schon reichen. Bei meinen Recherchen finde ich irgendwie nur was, wie ich eine Liste<> als Datenquelle verwende.

VG
da_user

Y
102 Beiträge seit 2005
vor 8 Jahren

Sieh dir dazu einmal die Klasse HierarchicalDataTemplate an.

Gruß,
Yeats