2010-08-23 4 views

Répondre

4

Voir How to: Sort and Group Data Using a View in XAML. Vous appliquez un grouping au CollectionView pour vos données, puis définissez GroupStyle sur le ComboBox. Fait entièrement XAML, il ressemblerait à ceci:

<StackPanel> 
    <StackPanel.Resources> 
     <CollectionViewSource x:Key="groupedData" Source="{Binding}"> 
      <CollectionViewSource.GroupDescriptions> 
       <PropertyGroupDescription PropertyName="Length"/> 
      </CollectionViewSource.GroupDescriptions> 
     </CollectionViewSource> 
    </StackPanel.Resources> 
    <ComboBox ItemsSource="{Binding Source={StaticResource groupedData}}"> 
     <ItemsControl.GroupStyle> 
      <x:Static Member="GroupStyle.Default"/> 
     </ItemsControl.GroupStyle> 
    </ComboBox> 
</StackPanel> 

Ou vous pouvez appliquer le regroupement dans le code:

this.DataContext = new List<string>() { "foo", "barr", "baz", "fizz" }; 
var cv = CollectionViewSource.GetDefaultView(this.DataContext); 
cv.GroupDescriptions.Add(new PropertyGroupDescription("Length")); 

Et utiliser la vue collection par défaut en XAML:

<ComboBox ItemsSource="{Binding}"> 
    <ItemsControl.GroupStyle> 
     <x:Static Member="GroupStyle.Default"/> 
    </ItemsControl.GroupStyle> 
</ComboBox> 

Vous pourrait personnaliser l'apparence des données groupées en fournissant un GroupStyle personnalisé avec votre propre HeaderTemplate.