C# Multidimensionales Array an Datagrid binden

I N X S

Captain
Registriert
Jan. 2007
Beiträge
3.443
Hey,

mal wieder ein Problem:

ich möchte ein Multidimensionales Array an ein Datagrid binden.

Array[TruckIds][Wochentag] = wert;

jezt macht er schon automatisch eine Row für jede TruckId, aber er erzeugt keine Columns aus den Tagen. ALso quasi, dass ich 31 Tage also Columns habe, sprich "1, 2, 3 ... 31"

Jemand ne Idee?
 
Du weisst das multidimensionales Array in C# mit [,] deklariert wird. Denn [][] ist eine jagged Array. 2D Arrays sind in der Regel performanter und brauchen weniger Speicher.
 
Jagged Arrays ? :S

Für sowas legt man sich IMMER eine Klasse an, welche du dann in einer List<T>, ObservableCollection<T>, oder wenns unbedingt sein muss, in ein T[] packst. Dann hast du automatisch die Typensicherheit und musst dich nicht mit so einem Humbug wie Jagged Arrays herumschlagen.

Solltest du .NET 3.5 verwenden kannst du zusätzlich noch mit LINQ arbeiten, was das Ganze noch einmal um ein vielfaches vereinfacht!


Ansonsten, wie R²-H schon sagte: dataGridView.ItemSource setzen und gut ist :)


Hier vielleicht noch ein wenig Lesestoff:
Multidimensional Array vs Jagged Array
 
Ich meinte natürlich einen jagged Array, sorry.

Ich habs jetzt erstmal so gelöst, aber ich denke nicht, dass das schön ist:
Code:
<sdk:DataGridTemplateColumn Header="1">
                            <sdk:DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <StackPanel>
                                        <TextBlock Text="{Binding [1].ampel}" />
                                    </StackPanel>
                                </DataTemplate>
                            </sdk:DataGridTemplateColumn.CellTemplate>
                        </sdk:DataGridTemplateColumn>
Ergänzung ()

cH40z-Lord schrieb:
Jagged Arrays ? :S

Für sowas legt man sich IMMER eine Klasse an, welche du dann in einer List<T>, ObservableCollection<T>, oder wenns unbedingt sein muss, in ein T[] packst. Dann hast du automatisch die Typensicherheit und musst dich nicht mit so einem Humbug wie Jagged Arrays herumschlagen.

Solltest du .NET 3.5 verwenden kannst du zusätzlich noch mit LINQ arbeiten, was das Ganze noch einmal um ein vielfaches vereinfacht!


Ansonsten, wie R²-H schon sagte: dataGridView.ItemSource setzen und gut ist :)


Hier vielleicht noch ein wenig Lesestoff:
Multidimensional Array vs Jagged Array


Ja natürlich, ich hab es jetzt mir ner Klasse T gemacht und dann die Rows als List von Klasse T dargestellt.

Jetzt hab ich aber das problem, dass ich von Klasse T mein Property "ID" als Column brauche und auch für das Property "days" vom Typ ObervableCollection jeweils eine COlumn.

Wie erreiche ich das?
 
Jetzt hab ich aber das problem, dass ich von Klasse T mein Property "ID" als Column brauche und auch für das Property "days" vom Typ ObervableCollection jeweils eine COlumn.

Wie erreiche ich das?

Ich verstehe noch nicht komplett was du erreichen möchtest.
Du weißt das jede Column einem Satz in deiner Collection entspricht ?!
 
Na passt schon, habs bereits gelöst. Manchmal muss man halt erst nachdenken, bevor man was macht :)
Vielen Dank an chaos für den Entscheidenen Hinweis.
 
Zurück
Oben