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
Sieh dir dazu einmal die Klasse HierarchicalDataTemplate an.
Gruß,
Yeats