Kom er niet meer uit, nu al de complete dag mee bezig geweest dus tijd voor hulp
Doel: Bind een listview met 3 kolommen aan een XML document.
Probleem: Ik krijg niet de juiste data te pakken, ik zit er super close bij, ik heb nl. nu succesvol de parent node gebind maar ik moet de childs daarvan hebben.
De XML
Code-behind om het XML bestand at runtime aan de datacontext te voeden. Hier maak ik dus al een subselectie van de XML die ik wil inladen (nl. de DYN_team table)
En de XAML voor mijn listview, zoals je ziet heb ik nu de XPath de attributen (ColumnName, ColumnID etc.) van de Columns in de DYN_team table laten lezen. Werkt prima, maar hoe krijg ik nu alle Cell elementen te zien. Waarbij ik dus elke kolom (in de listview) de Cell elementen uit een andere Column (uit de XML!) element wil laten zien, dus bijv.
1 GCE 1
3 ALM 2
4 COF 3
[edit]derde kolom van dit voorbeeld staat dus niet in de XML die ik als voorbeeld heb gebruikt en moet dus uit de zelfde Table node (nl. DYN_team) komen !
Doel: Bind een listview met 3 kolommen aan een XML document.
Probleem: Ik krijg niet de juiste data te pakken, ik zit er super close bij, ik heb nl. nu succesvol de parent node gebind maar ik moet de childs daarvan hebben.
De XML
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| <ExportedDatabase NumOriginalTables="258" NumTables="227"> <Table TableName="DYN_cym5" TableID="6" NumOriginalColumns="8" NumColumns="8" NumRows="30751"> <Column ColumnName="IDclassification" ColumnID="0" ColumnType="Int32"> <Cell>1</Cell> <Cell>2</Cell> <Cell>3</Cell> .................................................... <Table TableName="DYN_team" TableID="55" NumOriginalColumns="134" NumColumns="113" NumRows="118"> <Column ColumnName="IDteam" ColumnID="0" ColumnType="Int32"> <Cell>1</Cell> <Cell>3</Cell> <Cell>4</Cell> ...................................................... <Column ColumnName="gene_sz_abbreviation" ColumnID="2" ColumnType="String"> <Cell>GCE</Cell> <Cell>ALM</Cell> <Cell>COF</Cell> |
Code-behind om het XML bestand at runtime aan de datacontext te voeden. Hier maak ik dus al een subselectie van de XML die ik wil inladen (nl. de DYN_team table)
Visual Basic .NET:
1
2
3
| Dim Teams As XmlDataProvider = FindResource("TeamsData") Teams.XPath = "/ExportedDatabase/Table[@TableName=""DYN_team""]/*" Teams.Source = New Uri(AppDataFolder & MainWindow.SaveGameName.Replace(".cdb", ".xml"), UriKind.Absolute) |
En de XAML voor mijn listview, zoals je ziet heb ik nu de XPath de attributen (ColumnName, ColumnID etc.) van de Columns in de DYN_team table laten lezen. Werkt prima, maar hoe krijg ik nu alle Cell elementen te zien. Waarbij ik dus elke kolom (in de listview) de Cell elementen uit een andere Column (uit de XML!) element wil laten zien, dus bijv.
1 GCE 1
3 ALM 2
4 COF 3
[edit]derde kolom van dit voorbeeld staat dus niet in de XML die ik als voorbeeld heb gebruikt en moet dus uit de zelfde Table node (nl. DYN_team) komen !
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| <ListView Name="lvTeamSelection" ItemsSource="{Binding Source={StaticResource TeamsData}}" Background="Transparent" BorderThickness="0,0,0,0" Margin="5" > <ListView.View> <GridView AllowsColumnReorder="False" > <GridViewColumn Header="Country" Width="45" > <GridViewColumn.DisplayMemberBinding> <!--<Binding XPath="//Column[ColumnName=IDteam]/Cell" /> --> <Binding XPath="@ColumnID" /> </GridViewColumn.DisplayMemberBinding> </GridViewColumn> <GridViewColumn Header="Team" Width="130" > <GridViewColumn.DisplayMemberBinding> <!--<Binding XPath="//Column[ColumnName=gene_sz_name]/Cell" /> --> <Binding XPath="@ColumnName" /> </GridViewColumn.DisplayMemberBinding> </GridViewColumn> <GridViewColumn Header="Division" Width="45" > <GridViewColumn.DisplayMemberBinding> <!--<Binding XPath="//Column[ColumnName=IDcountry]/Cell" /> --> <Binding XPath="@ColumnType" /> </GridViewColumn.DisplayMemberBinding> </GridViewColumn> </GridView> </ListView.View> </ListView> |