Ich möchte eine csv Datei einlesen und in ein Datagrid ausgeben.
Da ich nicht weiß wie viele Zeilen und Spalten die CSV Datei hat mache ich das Einlesen über eine 2 dimensionale ObservableCollection.
Die sehen grundsätzlich so aus:
public ObservableCollection<ObservableCollection<string>> ImportGrid
{
get { return _ImportGrid; }
set { _ImportGrid = value; OnPropertyChanged(nameof(ImportGrid)); }
}
private ObservableCollection<ObservableCollection<string>> _ImportGrid;
public ObservableCollection<string> ImportSpalten
{
get { return _ImportSpalten; }
set { _ImportSpalten = value; OnPropertyChanged(nameof(ImportSpalten)); }
}
private ObservableCollection<string> _ImportSpalten;
Später kommt dann das Einlesen, das funktioniert auch. Meine 2D ObservableCollection ist also korrekt gefüllt.
Wo es krankt ist das Binden an ein DataGrid im Xaml. Das sieht so aus:
<DataGrid CanUserSortColumns="False" CanUserAddRows="False" AutoGenerateColumns="False" CanUserDeleteRows="True"
ItemsSource="{Binding ImportGrid}">
<DataGrid.Columns>
<md:DataGridTextColumn Binding="{Binding ImportSpalten[0]}"/>
<md:DataGridTextColumn Binding="{Binding ImportSpalten[1]}"/>
....
</DataGrid.Columns>
</DataGrid>
Hierbei funktioniert das "Binding="{Binding ImportSpalten[0]}" etc. " natürlich nicht.
Ich möchte nicht einfach alle eingelesenen Spalten darstellen sondern konkret die ersten X.
Wie kann ich also die Werte der Spalten anhand ihres Index abfragen?
Oder bin ich da generell auf dem Holzweg?
Danke für Tipps