Partager via


ItemsControl.AlternationIndex Propriété attachée

Définition

Obtient la valeur assignée du conteneur d’éléments lorsque des conteneurs d’éléments de remplacement sont utilisés.

see GetAlternationIndex, and SetAlternationIndex
see GetAlternationIndex
see GetAlternationIndex, and SetAlternationIndex
see GetAlternationIndex
see GetAlternationIndex, and SetAlternationIndex
see GetAlternationIndex

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 propriétés et les Background propriétés à la ItemsControl.AlternationIndex propriété Foreground et fournit une 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 chose 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.AlternationIndex. Vous pouvez ensuite utiliser une AlternationConverter valeur pour spécifier quelle valeur doit être appliquée 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 à