Laden...

Spalten aus einer Exceltabelle zur Laufzeit zu einem Datagrid hinzuladen - Binding im ViewMode

Erstellt von Caveman vor 3 Jahren Letzter Beitrag vor 3 Jahren 616 Views
Caveman Themenstarter:in
187 Beiträge seit 2009
vor 3 Jahren
Spalten aus einer Exceltabelle zur Laufzeit zu einem Datagrid hinzuladen - Binding im ViewMode

Hallo,

ich habe ein Datagrid, das einige fest definierte Spalten hat. Nun möchte ich gerne aus einer Exceltabelle willkürliche Spalten zur Laufzeit hinzuladen.
Das hinzuladen der Spalten an sich ist (im Moment) nicht das Problem. Seit ein paar Tagen mache ich mir aber Gedanken darüber, wie ich die Excelspalten mit meinem ViewModel verbinde, komme aber auf keine Lösung. Wie muss ich das angehen?

4.931 Beiträge seit 2008
vor 3 Jahren

Möchtest du genau eine (beliebige) Spalte jeweils hinzufügen oder mehrere?
Schau dir mal die Lösungen in Filling a Datagrid with dynamic Columns an.
Welche ItemsSource verwendest du bisher? Wenn du schon eine DataTable benutzt, dann wäre das dynamische Hinzufügen einer Spalte die einfachste Lösung.

Caveman Themenstarter:in
187 Beiträge seit 2009
vor 3 Jahren

Hallo Th69,

es soll nach Möglichkeit eine beliebige Anzahl an Spalten hinzugefügt werden können.
Meine bisherige ItemsSource ist eine ObservableCollection von ViewModels, die eine Datenzeile repräsentieren - also ganz klassisch!
Die DataTable hatte ich gleich zu Beginn in betracht gezogen, dann aber ziemlich schnell verworfen, weil ich mehrfach gelesen habe, dass man diese nicht mehr verwenden sollte.
Werde mich aber am kommenden WE dann doch nochmals näher damit auseinandersetzen.

T
2.219 Beiträge seit 2008
vor 3 Jahren

Das Problem von DataTables ist halt, dass diese ziemlich Speicherintensiv sind.
Wenn du beliebig viele Spalten und dann noch sehr viele Zeilen hast, dann wird dir der Speicherverbrauch irgendwann zu Krass ausfallen.
Musst du aber erst einmal austesten.
Ggf. kannst du mit Paging und dynamischen befüllen der DataSource das Problem umgehen.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.