2016-07-19 17 views
0

Lets iWie jedes n Element in einem Listview oder Items in XAML auszurichten

Modell haben sagen
public class Person 
{ 
    public string Name { get; set; } 
} 

Und in meinem ViewModle habe ich diese Liste:

ObservableCollection<Person> People; 

Normalerweise wird die Bindungssyntax sieht aus wie dies:

<ItemsControl ItemsSource="{Binding People}"> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <StackPanel> 
       <TextBlock Text="{Binding Name}"/> 
      </StackPanel> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 

Was ich erreichen will, ist für jede Zeile 3 Personen zu haben. wir also Leute sagen = {A, B, C, D, E, F, G} Ich möchte um es anzuzeigen mag:
ABC
DEF
G

Was ist der richtige Weg zu erreichen Dies ?

Antwort

5

Sie könnten eine Uniform als Itemspanel wie folgt verwenden:

<ItemsControl ItemsSource="{Binding People}"> 
    <ItemsControl.ItemsPanel> 
     <ItemsPanelTemplate> 
      <UniformGrid Columns="3"/> 
     </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <StackPanel> 
       <TextBlock Text="{Binding Name}"/> 
      </StackPanel> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl>