ItemsControl.AlternationIndex ItemsControl.AlternationIndex ItemsControl.AlternationIndex Attached Property

Definición

Obtiene el valor asignado del contenedor de elementos cuando se usan contenedores de elementos alternos.Gets the assigned value of the item container when alternating item containers are used.

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

Ejemplos

En el ejemplo siguiente se especifica ListBox que (que hereda de ItemsControl) tiene contenedores de elementos alternativos (que son de tipo ListBoxItem) y especifica un fondo y un primer plano diferentes para cada uno de ellos.The following example specifies that the ListBox (which inherits from ItemsControl) has alternating item containers (which are of type ListBoxItem) and specifies a different background and foreground for each one. En el ejemplo se enlazan Foreground las Background propiedades y ItemsControl.AlternationIndex a y se AlternationConverter proporciona un para cada propiedad.The example binds the Background and Foreground properties to the ItemsControl.AlternationIndex and provides an AlternationConverter for each property.

<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>

El ejemplo siguiente hace lo mismo que el ejemplo anterior mediante el Trigger uso de objetos.The following example does the same as the previous example by using Trigger objects.

<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>

Comentarios

Las AlternationCount propiedades ItemsControl.AlternationIndex y permiten especificar la apariencia de dos o más contenedores de elementos alternativos.The AlternationCount and ItemsControl.AlternationIndex properties enable you to specify the appearance for two or more alternating item containers. Por ejemplo, puede especificar colores de fondo alternativos para cada tercer elemento de un ItemsControl.For example, you can specify alternating background colors for every third item in an ItemsControl. Se asigna a cada contenedor ItemsControlde elementos de. ItemsControl.AlternationIndexThe ItemsControl.AlternationIndex is assigned to each item container in the ItemsControl. ItemsControl.AlternationIndexcomienza en 0, se incrementa hasta que es AlternationCount menos 1 y, a continuación, se reinicia en 0.ItemsControl.AlternationIndex begins at 0, increments until it is AlternationCount minus 1, and then restarts at 0. Por ejemplo, si AlternationCount es 3 y hay siete elementos ItemsControlen, en la tabla siguiente se enumeran ItemsControl.AlternationIndex los para cada elemento.For example, if AlternationCount is 3 and there are seven items in the ItemsControl, the following table lists the ItemsControl.AlternationIndex for each item.

Posición del elemento en elItemsControlPosition of Item in the ItemsControl ItemsControl.AlternationIndex
11 00
22 11
33 22
44 00
55 11
66 22
77 00

Existen varios métodos que puede usar para especificar diferentes aspectos para los contenedores de elementos alternativos.There are several methods you can use to specify different appearances for the alternating item containers. Un método consiste en enlazar las propiedades del contenedor de elementos ItemsControl.AlternationIndexa.One method is to bind properties of the items container to the ItemsControl.AlternationIndex. Después, puede usar AlternationConverter para especificar qué valor se debe aplicar al contenedor de elementos que tiene un valor determinado. ItemsControl.AlternationIndexYou can then use an AlternationConverter to specify which value should be applied to the item container that has a certain ItemsControl.AlternationIndex value. También puede usar desencadenadores para cambiar el valor de la propiedad de un contenedor de elementos en función del valor de su ItemsControl.AlternationIndex.You can also use triggers to change the value of an item container's property depending on the value of its ItemsControl.AlternationIndex.

Se aplica a