2010-11-24 22 views
0

J'ai une Datagrid, au démarrage j'ai défini son ensemble de colonnes puis je l'ai lié à List> pour le remplir avec des données. Chaque liste imbriquée a le même nombre d'éléments que le nombre de colonnes que j'ai, mais ... Je ne vois rien s'afficher ... Quelle est la pratique correcte pour lier une collection 2D à un DataGrid?ADO.NET DataGrid Liaison de Chaînes

Exemple de code

List<List<String>> rows = SomeFunctionThatReturnsTheRows(); 
this.grid.ItemsSource = rows; 

Merci, Miloud B.

Répondre

2

alors que diriez-vous

var rows = new List<List<string>>() 
     { 
      new List<string>() {"List1-1", "List1-2", "List1-3"}, 
      new List<string>() {"List2-1", "List2-2", "List2-3"} 
     }; 
GridView gv = new GridView(); 
this.grid.View = gv; 
gv.Columns.Add(new GridViewColumn(){DisplayMemberBinding = new Binding(".[0]")}); 
gv.Columns.Add(new GridViewColumn(){DisplayMemberBinding = new Binding(".[1]")}); 
gv.Columns.Add(new GridViewColumn(){DisplayMemberBinding = new Binding(".[2]")}); 
this.grid.ItemsSource = rows; 
+0

Vous l'avez renversé merci doyen! J'ai adapté ceci à DataGridView et cela fonctionne! Mais une seule préoccupation: grid.ItemsSource = rows provoque la liaison de deux colonnes finales: Capacity et Count qui sont liées à List ... Comment puis-je les exclure? – CoolStraw

+0

vous devez désactiver AutoGenerateColumns, et créer les colonnes par programme –

+0

Dean vous êtes bon! Merci beaucoup vous m'avez beaucoup appris aujourd'hui;) – CoolStraw

1

essayer cette

DataContext = new List<List<string>>() 
    { 
     new List<string>() {"List1-1", "List1-2", "List1-3"}, 
     new List<string>() {"List2-1", "List2-2", "List2-3"} 
    }; 

<ListView ItemsSource="{Binding}"> 
    <ListView.View> 
    <GridView> 
     <GridView.Columns> 
     <GridViewColumn DisplayMemberBinding="{Binding .[0]}" /> 
     <GridViewColumn DisplayMemberBinding="{Binding .[1]}" /> 
     <GridViewColumn DisplayMemberBinding="{Binding .[2]}" /> 
     </GridView.Columns> 
    </GridView> 
    </ListView.View> 
</ListView> 

produit ce

alt text

+0

Merci Dean. un seul pense, je dois lier par programme, je ne peux pas éditer mon xaml dans mon contexte. – CoolStraw