Ok, das dynamische Erzeugen der Columns wird in XAML nicht funktionieren (mit etwas Aufwand
schon, aber das muss vielleicht nicht jetzt schon sein
...). Ich würde trotzdem so viel wie möglich in XAML deklarieren, also GridView und die Selected-Column:
XML-Daten
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| <ListView.View> <GridView x:Name="gridView" AllowsColumnReorder="True"> <GridView.Columns> <GridViewColumn Header="Ausgewählt"> <GridViewColumn.CellTemplate> <DataTemplate> <CheckBox IsChecked="{Binding IsSelected}" /> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> </GridView.Columns> </GridView>
</ListView.View> |
Wenn die Spalte hinten stehen soll, musst du statt Columns.Add eben Insert benutzen.
In einer foreach-Schleife wrappst du dann alle DataRows in einer
C#-Quelltext
1: 2: 3: 4: 5:
| class DataRowSelected { public DataRow Row { get; set; } public bool IsSelected { get; set; } } |
und speicherst sie in einer List<DataRowSelected>. Die letzten vier Zeilen deines Quellcodes sind zwar, äh... kreativ
, aber das reicht vollkommen:
C#-Quelltext
1:
| lsv.ItemsSource = myList; |
Dann musst du nur noch diese Zeile anpassen:
C#-Quelltext
1:
| gvc.DisplayMemberBinding = new Binding("Row." + c.ColumnName); |