2010-12-04 26 views
4

J'ai une collection d'objets que je voudrais représenter des colonnes dans un GridView. Actuellement, je suis lient des colonnes individuelles dans mon GridView à des éléments de la collection comme ceci:Comment lier à ColumnCollection pour un GridView en utilisant XAML

<ListView> 
    <ListView.View> 
     <GridView> 
      <GridViewColumn Header="{Binding Path=MyColumns[0].Title}"></GridViewColumn> 
      <GridViewColumn Header="{Binding Path=MyColumns[1].Title}"></GridViewColumn> 
      <GridViewColumn Header="{Binding Path=MyColumns[2].Title}"></GridViewColumn> 
     </GridView> 
    </ListView.View> 
</ListView> 

Cela fonctionne bien, mais ce que je veux vraiment faire est de se lier à la collection elle-même (puisque le nombre d'éléments la collection peut changer au moment de l'exécution). Je voudrais accomplir cela en XAML. Ce que j'ai à l'esprit est quelque chose comme ceci (notez cela ne fonctionne pas - l'attribut est ColumnsSource faire semblant):

<ListView> 
    <ListView.View> 
     <GridView ColumnsSource="{Binding Path=MyColumns}"> 
     </GridView> 
    </ListView.View> 
</ListView> 

peut-il être fait? Si c'est le cas, comment?

+1

J'ai trouvé un doublon sur http://stackoverflow.com/q/1863200/503969 mais le libellé et la présentation sont assez différents. –

Répondre

2

Vous pouvez utiliser un attached property pour créer une propriété ColumnsSource, voir this question pour un exemple.

+0

C'est 'ItemsSource', cela ne peut pas être fait avec' ColumnsSource'. –

+0

@GregSansom: Non, je ne parle pas de 'ItemsSource'. Vous ne semblez pas avoir compris mon point, voir la question à laquelle je suis lié ... –