ItemsControl.AlternationCount Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub ustawia liczbę kontenerów elementów naprzemiennej w elemencie ItemsControl, co umożliwia przemiennym kontenerom unikatowy wygląd.
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
Wartość właściwości
Liczba kontenerów elementów naprzemiennych w elemencie ItemsControl.
- Atrybuty
Przykłady
Poniższy przykład określa, że ListBox (który dziedziczy z ItemsControl) ma naprzemienne kontenery elementów (które są typu ListBoxItem) i określa inne tło i pierwszy plan dla każdego z nich. W przykładzie Background właściwości i Foreground są powiązane z właściwościami ItemsControl.AlternationIndexAlternationConverter i i dla każdej właściwości.
<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>
Poniższy przykład działa tak samo jak w poprzednim przykładzie przy użyciu Trigger obiektów.
<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>
Uwagi
Właściwości AlternationCount i ItemsControl.AlternationIndex umożliwiają określenie wyglądu co najmniej dwóch kontenerów elementów naprzemiennej. Można na przykład określić naprzemienne kolory tła dla każdego trzeciego elementu w elemencie ItemsControl. Element ItemsControl.AlternationIndex jest przypisywany do każdego kontenera elementów w obiekcie ItemsControl. ItemsControl.AlternationIndex zaczyna się od 0, zwiększa się AlternationCount do minus 1, a następnie uruchamia się ponownie o 0. Na przykład jeśli AlternationCount wartość to 3 i w poniższej tabeli znajduje się siedem elementów , w poniższej ItemsControltabeli wymieniono ItemsControl.AlternationIndex wartości dla każdego elementu.
| Pozycja elementu w elemencie ItemsControl | ItemsControl.AlternationIndex |
|---|---|
| 1 | 0 |
| 2 | 1 |
| 3 | 2 |
| 4 | 0 |
| 5 | 1 |
| 6 | 2 |
| 7 | 0 |
Istnieje kilka metod, których można użyć, aby określić różne wyglądy kontenerów elementów naprzemiennych. Jedną z metod jest powiązanie właściwości kontenera elementów z elementem ItemsControl.AlternationIndex. Następnie można użyć elementu , AlternationConverter aby określić, która wartość ma zostać zastosowana do kontenera elementów, który ma określoną ItemsControl.AlternationIndex wartość. Możesz również użyć wyzwalaczy, aby zmienić wartość właściwości kontenera elementów w zależności od wartości jej ItemsControl.AlternationIndex.