ItemsControl.AlternationCount Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar eller anger antalet alternerande objektcontainrar i ItemsControl, vilket gör att alternerande containrar kan ha ett unikt utseende.
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
Egenskapsvärde
Antalet alternerande objektcontainrar i ItemsControl.
- Attribut
Exempel
I följande exempel anges att ListBox (som ärver från ItemsControl) har alternerande objektcontainrar (som är av typen ListBoxItem) och anger en annan bakgrund och förgrund för var och en. Exemplet binder Background egenskaperna och Foreground till ItemsControl.AlternationIndex och ger en AlternationConverter för varje egenskap.
<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>
Följande exempel gör samma sak som i föregående exempel med hjälp Trigger av objekt.
<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>
Kommentarer
Med AlternationCount egenskaperna och ItemsControl.AlternationIndex kan du ange utseendet för två eller flera alternerande objektcontainrar. Du kan till exempel ange alternerande bakgrundsfärger för vart tredje objekt i en ItemsControl. ItemsControl.AlternationIndex Tilldelas till varje objektcontainer i ItemsControl. ItemsControl.AlternationIndex börjar vid 0, ökar tills den är AlternationCount minus 1 och startar sedan om vid 0. Om till exempel AlternationCount är 3 och det finns sju objekt i ItemsControl, visar ItemsControl.AlternationIndex följande tabell för varje objekt.
| Positionen för objektet i ItemsControl | ItemsControl.AlternationIndex |
|---|---|
| 1 | 0 |
| 2 | 1 |
| 3 | 2 |
| 4 | 0 |
| 5 | 1 |
| 6 | 2 |
| 7 | 0 |
Det finns flera metoder som du kan använda för att ange olika utseenden för de alternerande objektcontainrarna. En metod är att binda egenskaperna för objektcontainern till ItemsControl.AlternationIndex. Du kan sedan använda en AlternationConverter för att ange vilket värde som ska tillämpas på objektcontainern som har ett visst ItemsControl.AlternationIndex värde. Du kan också använda utlösare för att ändra värdet för en objektcontainers egenskap beroende på värdet för dess ItemsControl.AlternationIndex.