ItemsControl.AlternationCount Propriété

Définition

Obtient ou définit le nombre de conteneurs d’éléments alternés dans le ItemsControl, ce qui permet aux conteneurs alternés d’avoir 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é

Nombre de conteneurs d’éléments alternés dans le ItemsControl.

Attributs

Exemples

L’exemple suivant spécifie que le ListBox (qui hérite de ItemsControl) a des conteneurs d’éléments alternés (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 Foreground à la ItemsControl.AlternationIndex propriété et fournit une AlternationConverter valeur 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 pour 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 d’éléments 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 la valeur AlternationCount 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 à