ItemsControl.AlternationCount Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví počet střídavých kontejnerů položek v objektu ItemsControl, což umožňuje střídavým kontejnerům mít jedinečný vzhled.
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
Hodnota vlastnosti
Počet střídavých kontejnerů položek v souboru ItemsControl.
- Atributy
Příklady
Následující příklad určuje, že ListBox (který dědí z ItemsControl) má střídavě kontejnery položek (které jsou typu ListBoxItem) a určuje jiné pozadí a popředí pro každou z nich. Příklad vytvoří vazbu Background a vlastnosti na ItemsControl.AlternationIndex vlastnost Foreground a poskytuje AlternationConverter pro každou vlastnost.
<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>
Následující příklad se shoduje s předchozím příkladem pomocí Trigger 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>
Poznámky
ItemsControl.AlternationIndex Vlastnosti AlternationCount umožňují určit vzhled dvou nebo více střídavých kontejnerů položek. Můžete například zadat střídavé barvy pozadí pro každou třetí položku v objektu ItemsControl. Je ItemsControl.AlternationIndex přiřazen ke každému kontejneru položek v objektu ItemsControl. ItemsControl.AlternationIndex začíná na 0, přírůstky, dokud není AlternationCount minus 1, a pak se restartuje na 0. Pokud je například AlternationCount 3 a v následující ItemsControltabulce je sedm položek, uvádí ItemsControl.AlternationIndex následující tabulka pro každou položku.
Pozice položky v ItemsControl | ItemsControl.AlternationIndex |
---|---|
1 | 0 |
2 | 1 |
3 | 2 |
4 | 0 |
5 | 1 |
6 | 2 |
7 | 0 |
Existuje několik metod, které můžete použít k určení různých vzhledů pro kontejnery střídavých položek. Jednou z metod je vytvoření vazby vlastností kontejneru položek k objektu ItemsControl.AlternationIndex. Pak můžete použít AlternationConverter k určení hodnoty, kterou by se měla použít u kontejneru položky, který má určitou ItemsControl.AlternationIndex hodnotu. Aktivační události můžete také použít ke změně hodnoty vlastnosti kontejneru položky v závislosti na hodnotě jeho ItemsControl.AlternationIndex.