Compartilhar via


ItemsControl.AlternationCount Propriedade

Definição

Obtém ou define o número de contêineres de itens alternados no ItemsControl, o que permite que os contêineres alternados tenham uma aparência exclusiva.

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

Valor da propriedade

Int32

O número de contêineres de itens alternados em ItemsControl.

Atributos

Exemplos

O exemplo a seguir especifica que o ListBox (que herda de ItemsControl) tem contêineres de itens alternados (que são do tipo ListBoxItem) e especifica um plano de fundo e um 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 seu ItemsControl.AlternationIndex.

Aplica-se a