Hallo,
Ich möchte ein Datagrid mit Daten befüllen (MVVM). In meinem ViewModel sieht das dann so aus:
XML-Code: |
<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding DummyStudents}">
<DataGrid.Columns >
<DataGridTextColumn Header="Nachname" Binding="{Binding LastName}"></DataGridTextColumn>
<DataGridTextColumn Header="Vorname" Binding="{Binding PreName}"></DataGridTextColumn>
<DataGridTextColumn Header="Klasse" Binding="{Binding ClassLabel}"></DataGridTextColumn>
<DataGridTextColumn Header="Bildungsgang" Binding="{Binding EducationType}"></DataGridTextColumn>
<DataGridTextColumn Header="Mathematik" Binding="{Binding Subjects.GradeAverageValToStr}"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
|
Soweit funktioniert mein Code - ich bekomme die in 'DummyStudents (eine ObservableCollection<Student>) hinterlegten Objekte angezeigt. Bis auf die 5. Column, denn hier müsste ich auf das Property einer verschachtelten Klasse zugreifen. (public class Student--> List<Subject>Subjects--> hier bit es 10 Einträge, jeder sollte einer extra Column zugeordnet werden.)
Ein Student-Objekt schaut bei mir so aus:
C#-Code: |
public string PreName { get; set; }
public string LastName { get; set; }
public string ClassLabel { get; set; }
public string EducationType { get; set; }
public List<Subject> Subjects { get; set; } = new List<Subject>();
|
Interessant wird es bei List<Subject> Subjects. Der Typ Subject ist wiederum eine Klasse mit ein paar Properties und wiederum einer List<Grades> Grades (Schulnoten also) usw. Diese sind keine ObservableCollections, sondern eben Lists.
Bisher habe ich es immer so gemacht, dass ich sämtliche für die GUI relevanten Datenfelder in Form gesonderter ObservableCollections oder Properties in meinem ViewModel implementiert hatte.
Meine Frage: gibt es da noch einen anderen Weg? Denn
XML-Code: |
Binding="{Binding Subjects.GradeAverageValToStr}"
|
funktioniert nicht - meine ItemsSource ist bereits eine ObservableCollection und 'Subjects' ist eine List<Subject>, die zum Typ 'Student' gehört.
Ich hoffe, ich konnte das Problem einigermaßen genau skizzieren: vereinfacht: was tun, bei verschachtelten Klassen (speziell Objekte, die wieder Listen anderer Objekte bereithalten)?
Gruß
Vorph