ItemsControl.AlternationCount Propriété

Définition

Obtient ou définit le nombre de conteneurs d’éléments de remplacement dans le ItemsControl, ce qui permet aux conteneurs de remplacement de revêtir une apparence unique.

public:
 property int AlternationCount { int get(); void set(int value); };
[System.ComponentModel.Bindable(true)]
public int AlternationCount { get; set; }
[<System.ComponentModel.Bindable(true)>]
member this.AlternationCount : int with get, set
Public Property AlternationCount As Integer

Valeur de propriété

Int32

Nombre de conteneurs d’éléments de remplacement dans ItemsControl.

Attributs

Exemples

L’exemple suivant spécifie que le ListBox (qui hérite de ItemsControl) possède des conteneurs d’éléments alternatifs (qui sont de type ListBoxItem) et spécifie un arrière-plan et un premier plan différents pour chacun d’eux. L’exemple lie les Background propriétés et Foreground les lie à chaque ItemsControl.AlternationIndex propriété et fournit un AlternationConverter pour chaque propriété.

<Grid>
  <Grid.Resources>
    <AlternationConverter x:Key="BackgroundConverter">
      <SolidColorBrush>Blue</SolidColorBrush>
      <SolidColorBrush>CornflowerBlue</SolidColorBrush>
      <SolidColorBrush>LightBlue</SolidColorBrush>
    </AlternationConverter>

    <AlternationConverter x:Key="AlternateForegroundConverter">
      <SolidColorBrush>White</SolidColorBrush>
      <SolidColorBrush>Black</SolidColorBrush>
      <SolidColorBrush>Navy</SolidColorBrush>
    </AlternationConverter>

    <Style x:Key="alternatingWithBinding" TargetType="{x:Type ListBoxItem}">
      <Setter Property="Background" 
              Value="{Binding RelativeSource={RelativeSource Self},
                     Path=(ItemsControl.AlternationIndex),
                     Converter={StaticResource BackgroundConverter}}"/>

      <Setter Property="Foreground" 
              Value="{Binding RelativeSource={RelativeSource Self},
                     Path=(ItemsControl.AlternationIndex),
                     Converter={StaticResource AlternateForegroundConverter}}"/>
    </Style>

  </Grid.Resources>

  <ListBox AlternationCount="3" ItemsSource="{StaticResource data}"
           ItemContainerStyle="{StaticResource alternatingWithBinding}"/>
</Grid>

L’exemple suivant effectue la même opération que l’exemple précédent à l’aide d’objets Trigger .

<Grid>
  <Grid.Resources>
    <Style x:Key="alternatingWithTriggers" TargetType="{x:Type ListBoxItem}">
      <Setter Property="Background" Value="Blue"/>
      <Setter Property="Foreground" Value="White"/>
      <Style.Triggers>
        <Trigger Property="ListBox.AlternationIndex" Value="1">
          <Setter Property="Background" Value="CornflowerBlue"/>
          <Setter Property="Foreground" Value="Black"/>
        </Trigger>
        <Trigger Property="ListBox.AlternationIndex" Value="2">
          <Setter Property="Background" Value="LightBlue"/>
          <Setter Property="Foreground" Value="Navy"/>
        </Trigger>
      </Style.Triggers>
    </Style>

  </Grid.Resources>
  <ListBox AlternationCount="3" ItemsSource="{StaticResource data}" 
           ItemContainerStyle="{StaticResource alternatingWithTriggers}">
  </ListBox>
</Grid>

Remarques

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

Position de l’élément 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 conteneurs d’éléments alternatifs. Une méthode consiste à lier les propriétés du conteneur d’éléments au ItemsControl.AlternationIndexconteneur . Vous pouvez ensuite utiliser un AlternationConverter pour spécifier la valeur à appliquer au conteneur d’éléments qui a une certaine ItemsControl.AlternationIndex valeur. Vous pouvez également utiliser des déclencheurs pour modifier la valeur de la propriété d’un conteneur d’éléments en fonction de la valeur de son ItemsControl.AlternationIndex.

S’applique à