Partager via


GroupStyle.AlternationCount Propriété

Définition

Obtient ou définit le nombre d'objets GroupItem de remplacement.

public:
 property int AlternationCount { int get(); void set(int value); };
public int AlternationCount { get; set; }
member this.AlternationCount : int with get, set
Public Property AlternationCount As Integer

Valeur de propriété

Nombre d'objets GroupItem de remplacement.

Exemples

L’exemple suivant crée un ListBox qui est lié à un CollectionViewSource qui regroupe les éléments de la collection. L’exemple montre comment alterner l’arrière-plan de l’en-tête de chacun GroupItem entre deux couleurs en procédant comme suit :

L’exemple alterne également l’arrière-plan des éléments dans le ListBox entre trois couleurs en définissant sur AlternationCount le ListBox et en liant le Background de chaque ListBox à .ItemsControl.AlternationIndex Dans ce cas, l’arrière-plan alterne entre trois couleurs.

Le CollectionViewSource qui regroupe les éléments n’est pas affiché. Pour plus d’informations sur la façon de regrouper un élément, consultez Guide pratique pour trier et regrouper des données à l’aide d’une vue en XAML.

<StackPanel>

  <StackPanel.Resources>

    <!--Returns a Brush for the header of a GroupItem.-->
    <AlternationConverter x:Key="GroupHeaderBackgroundConverter">
      <SolidColorBrush>LightBlue</SolidColorBrush>
      <SolidColorBrush>LightSteelBlue</SolidColorBrush>
    </AlternationConverter>

    <!--Returns a Brush for a ListBoxItem.-->
    <AlternationConverter x:Key="BackgroundConverter">
      <SolidColorBrush>Silver</SolidColorBrush>
      <SolidColorBrush>LightGray</SolidColorBrush>
      <SolidColorBrush>GhostWhite</SolidColorBrush>
    </AlternationConverter>

  </StackPanel.Resources>

  <ListBox ItemsSource="{Binding Source={StaticResource groupedData}}"
           DisplayMemberPath="CityName" AlternationCount="3" Name="lb">

    <ListBox.GroupStyle>
      <!--Set alternating backgrounds on the header of each group.-->
      <GroupStyle AlternationCount="2">
        <GroupStyle.HeaderTemplate>
          <DataTemplate>
            <TextBlock FontWeight="Bold" 
                       Text="{Binding Path=Name}" 
                       Background="{Binding 
                           RelativeSource={RelativeSource FindAncestor, 
                           AncestorType={x:Type GroupItem}},
                           Path=(ItemsControl.AlternationIndex),
                           Converter={StaticResource 
                                      GroupHeaderBackgroundConverter}}"/>
          </DataTemplate>
        </GroupStyle.HeaderTemplate>
      </GroupStyle>
    </ListBox.GroupStyle>

    <ListBox.ItemContainerStyle>
      <!--Set alternating backgrounds on the items in the ListBox.-->
      <Style TargetType="{x:Type ListBoxItem}">
        <Setter Property="Background" 
                Value="{Binding RelativeSource={RelativeSource Self},
                     Path=(ItemsControl.AlternationIndex),
                     Converter={StaticResource BackgroundConverter}}"/>
      </Style>
    </ListBox.ItemContainerStyle>
  </ListBox>
</StackPanel>

Remarques

La AlternationCount propriété et la ItemsControl.AlternationIndex propriété jointe vous permettent de spécifier l’apparence de deux objets alternatifs GroupItem ou plus. Par exemple, vous pouvez spécifier des couleurs d’arrière-plan alternées pour chaque tiers GroupItem d’un ItemsControl. le ItemsControl.AlternationIndex est affecté à chaque GroupItem dans le ItemsControl. ItemsControl.AlternationIndex commence à 0, s’incrémente jusqu’à ce qu’elle soit AlternationCount moins 1, puis redémarre à 0. Par exemple, si AlternationCount a la valeur 3 et qu’il y a sept GroupItem objets dans , ItemsControlle tableau suivant répertorie le ItemsControl.AlternationIndex pour chaque élément.

Position de GroupItem dans le ItemsControl ItemsControl.AlternationIndex
1 0
2 1
3 2
4 0
5 1
6 2
7 0

Il existe plusieurs méthodes que vous pouvez utiliser pour spécifier différentes apparences pour les objets alternatifs GroupItem . Une méthode consiste à lier les propriétés dans ou HeaderTemplateContainerStyle du GroupStyle à .ItemsControl.AlternationIndex Vous pouvez ensuite utiliser un AlternationConverter pour spécifier la valeur à appliquer au GroupItem qui a une certaine ItemsControl.AlternationIndex valeur. Vous pouvez également utiliser des déclencheurs pour modifier la valeur d’une propriété en fonction de la valeur de son ItemsControl.AlternationIndex.

S’applique à