2009-07-23 8 views
0

Je souhaite charger mon UserControl WPF avec des lignes dynamiques. Mon scénario est le suivant.WPF créant des lignes dynamiques à l'aide du modèle MVVM

1. When the UserControl gets loaded, I will populate my List<string> object with some values which I will get from a database. 
2. I need to create equal number of rows in my UserControl which matches the number of items in the List<string> object. The display will look something like below 

Colonne 1 est un contrôle d'étiquette et la colonne 2 sera un contrôle TextBlock

Label 1: Item 1 (This is the value from the List<string> object) 
    Label 2: Item 2 
    Label 3: Item 3 

I know how to create rows dynamically but my problem is how do I do this when I'm using the MVVM pattern. 

Note: J'utilise la boîte à outils MVVM de CodePlex.

Merci, Jithu

Répondre

1

Définir l'objet MVVM vous avez comme datacontext de votre UserControl, j'espère que l'objet possède une propriété de collection en elle. Ensuite, créez un ItemsControl plus comme ci-dessous Il n'est pas clair d'après votre description que l'étiquette et l'élément proviennent vraiment de votre ViewModel. Le code ci-dessous va créer des lignes dynamiquement autant que votre Collection.Count.

<ItemsControl ItemsSource="{Binding YourStringCollection}" HorizontalAlignment="Left" > 
     <ItemsControl.ItemsPanel> 
      <ItemsPanelTemplate> 
        <StackPanel Orientation="Vertical"/>    
      </ItemsPanelTemplate>        
     </ItemsControl.ItemsPanel> 
     <ItemsControl.ItemsTemplate> 
      <DataTemplate> 
        <TextBlock Text="{Binding}">    
      </DataTemplate >        
     </ItemsControl. ItemsTemplate > 
    </ItemsControl> 
Questions connexes