Folgende "Optimierung" will mir einfach nicht gelingen, vielleicht hat jemand eine zündende Idee:
Ausgangssituation ist ein ganz normales DataTable welches ich an ein datagrid binde:
c#:
C#-Quelltext
1:
| this.dataGrid1.ItemsSource = myDataTable.DefaultView; |
In xaml werden die Tabellen-Spalten dann an das Datagrid gebunden:
xaml:
C#-Quelltext
1: 2: 3: 4: 5: 6:
| <my:DataGridTextColumn Header="Symbol" Binding="{Binding Path=Results.Symbol}" IsReadOnly="True" CellStyle="{StaticResource CellStyle}" ElementStyle="{StaticResource TextBlockBottomStyle}" /> |
Klappt auch!
Wie man hier schon sieht, ist das der Versuch meiner kleinen Optimierung. In meinem Datatable packe ich ein Object rein anstelle einzelner Properties. Das erspart mir den ganzen Overhead das vorhandene Object in einzelne Spalten zu zerlegen. Damit trotzdem Daten angezeigt werden, musste ich das Binding ändern. Anstelle von:
C#-Quelltext
1:
| Binding="{Binding Path=Symbol}" |
Wobei Symbol eine Tabellen-Spalte dargestellt hat.
in:
C#-Quelltext
1:
| Binding="{Binding Path=Results.Symbol}" |
Wobei Results ein in dem DataTable gespeichertes Object ist, und Symbol ein Propertie dieses Objektes.
Klappt auch!
Bis auf ein Problem. Das Sortieren funktioniert nicht mehr,
es wird folgende Exception ausgelöst:
Quelltext
1:
| "Der Typ \"\" besitzt keine Eigenschaft mit dem Namen \"Results.Symbol\", weshalb die Datenauflistung nicht sortiert werden kann." |