ItemsControl.AlternationCount Propiedad

Definición

Obtiene o establece el número de contenedores de elementos alternativos en el ItemsControl, lo que permite a los contenedores alternativos tener una apariencia única.

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

Int32

El número de contenedores de elementos alternativos en el ItemsControl.

Atributos

Ejemplos

En el ListBox ejemplo siguiente se especifica que (que hereda de ItemsControl) tiene contenedores de elementos alternados (que son de tipo ListBoxItem) y especifica un fondo y un primer plano diferentes para cada uno. En el ejemplo se enlazan las Background propiedades y Foreground a ItemsControl.AlternationIndex y se proporciona un AlternationConverter para cada propiedad.

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

En el ejemplo siguiente se hace lo mismo que en el ejemplo anterior mediante el uso Trigger de 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>

Comentarios

Las AlternationCount propiedades y ItemsControl.AlternationIndex permiten especificar la apariencia de dos o más contenedores de elementos alternantes. Por ejemplo, puede especificar colores de fondo alternados para cada tercer elemento de .ItemsControl ItemsControl.AlternationIndex se asigna a cada contenedor de elementos de .ItemsControl ItemsControl.AlternationIndex comienza en 0, se incrementa hasta que es AlternationCount menos 1 y, a continuación, se reinicia en 0. Por ejemplo, si AlternationCount es 3 y hay siete elementos en , en la ItemsControltabla siguiente se muestra el ItemsControl.AlternationIndex para cada elemento.

Posición del elemento en ItemsControl ItemsControl.AlternationIndex
1 0
2 1
3 2
4 0
5 1
6 2
7 0

Hay varios métodos que puede usar para especificar diferentes apariencias para los contenedores de elementos alternados. Un método consiste en enlazar propiedades del contenedor de elementos a ItemsControl.AlternationIndex. A continuación, puede usar un AlternationConverter para especificar qué valor se debe aplicar al contenedor de elementos que tiene un valor determinado ItemsControl.AlternationIndex . 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.

Se aplica a