ItemsControl.AlternationCount Propiedad
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 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
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.