Partilhar via


ItemsControl.AlternationIndex Propriedade anexada

Definição

Obtém o valor atribuído do contêiner do item quando contêineres de itens alternados são usados.

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

Exemplos

O exemplo a seguir especifica que o ListBox (que herda de ) tem contêineres de ItemsControlitens alternados (que são do tipo ListBoxItem) e especifica um plano de fundo e primeiro plano diferentes para cada um deles. O exemplo associa as propriedades e Foreground as Background propriedades ao ItemsControl.AlternationIndex e fornece uma AlternationConverter para cada propriedade.

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

O exemplo a seguir faz o mesmo que o exemplo anterior usando Trigger objetos.

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

Comentários

As AlternationCount propriedades e as ItemsControl.AlternationIndex propriedades permitem que você especifique a aparência de dois ou mais contêineres de itens alternados. Por exemplo, você pode especificar cores de plano de fundo alternadas para cada terceiro item em um ItemsControl. O ItemsControl.AlternationIndex item é atribuído a cada contêiner de item no ItemsControl. ItemsControl.AlternationIndex começa em 0, incrementa até ser AlternationCount menos 1 e, em seguida, reinicia em 0. Por exemplo, se AlternationCount for 3 e houver sete itens na tabela a ItemsControlseguir listará o ItemsControl.AlternationIndex item para cada item.

Posição do item no ItemsControl ItemsControl.AlternationIndex
1 0
2 1
3 2
4 0
5 1
6 2
7 0

Há vários métodos que você pode usar para especificar diferentes aparências para os contêineres de itens alternados. Um método é associar propriedades do contêiner de itens ao ItemsControl.AlternationIndex. Em seguida, você pode usar um AlternationConverter para especificar qual valor deve ser aplicado ao contêiner de item que tem um determinado ItemsControl.AlternationIndex valor. Você também pode usar gatilhos para alterar o valor da propriedade de um contêiner de item, dependendo do valor de sua ItemsControl.AlternationIndex.

Aplica-se a