2010-07-01 7 views
0

Je lie à un ItemsControl dans mon behind:WPF problème de liaison ItemsControl

ColumnVisibilityItems.DataContext = gc.ColumnVisibility; 

où ColumnVisibility est un ObservableCollection, il a également essayé avec le dictionnaire ..

mon balisage

   <ItemsControl x:Name="ColumnVisibilityItems"> 
        <Label Content="{Binding Path=Name}" /> 
       </ItemsControl> 

tout passant à travers, je vois la collection liée ayant 11 éléments. mais ItemsControl restitue uniquement le premier élément de la collection.

La propriété ItemsSource doit-elle être définie pour que cela fonctionne? parce que chaque fois que j'essaye de mettre ceci dans le code, j'obtiens l'exception disant que les articles ne peuvent pas être modifiés parce qu'ils existent déjà.

Répondre

2

fondamentalement vous devez spécifier votre modèle. Voir the msdn docs pour un exemple plus complet

<ItemsControl x:Name="ColumnVisibilityItems" ItemsSource="{Binding}> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <Label Content="{Binding Path=Name}" /> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 
+0

que je pensais, et effectivement essayé de jouer avec ItemTemplate, mais il ne semble pas faire une grande différence. Par exemple, ce code produit un élément vide ... Est-ce que je ne configure pas correctement la liaison dans codebehind? –

+0

J'ai mis à jour mon exemple pour montrer comment vous définiriez ItemsSource, ce qui est probablement ce dont vous avez besoin – kenwarner

+0

oui, c'était, merci! –