ItemsControl.AlternationIndex Propiedad adjunta
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene el valor asignado del contenedor de elementos cuando se usan contenedores de elementos alternos.
see GetAlternationIndex, and SetAlternationIndex
see GetAlternationIndex
see GetAlternationIndex, and SetAlternationIndex
see GetAlternationIndex
see GetAlternationIndex, and SetAlternationIndex
see GetAlternationIndex
Ejemplos
En el ejemplo siguiente se especifica que ListBox (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. 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 alternativos. Un método consiste en enlazar propiedades del contenedor de elementos a .ItemsControl.AlternationIndex A continuación, puede usar para AlternationConverter 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.