GroupStyle.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 GroupItem objektů.
public:
property int AlternationCount { int get(); void set(int value); };
public int AlternationCount { get; set; }
member this.AlternationCount : int with get, set
Public Property AlternationCount As Integer
Hodnota vlastnosti
Počet střídavých GroupItem objektů.
Příklady
Následující příklad vytvoří ListBox , který je vázán na CollectionViewSource seskupit položky v kolekci. Příklad nahrazuje pozadí záhlaví každé GroupItem mezi dvěma barvami následujícím způsobem:
Nastaví AlternationCount na 2.
Vytvoří hodnotu AlternationConverter , která vrátí SolidColorBrushhodnotu v závislosti na hodnotě ItemsControl.AlternationIndex.
Vytvoří vazbu na Background vlastnost ItemsControl.AlternationIndexTextBlockHeaderTemplate a poskytuje .AlternationConverter Všimněte si, že připojená AlternationIndex vlastnost je nastavena na GroupItema vazba používá FindAncestor k získání jeho hodnoty.
Příklad také alternativní pozadí položek mezi ListBox třemi barvami nastavením AlternationCount na a ListBox vazbu Background každého z nich ListBox .ItemsControl.AlternationIndex V tomto případě se pozadí střídá mezi třemi barvami.
Položka CollectionViewSource , která seskupí položky, se nezobrazuje. Informace o tom, jak seskupit položku, naleznete v tématu Postupy: Řazení a seskupování dat pomocí zobrazení v XAML.
<StackPanel>
<StackPanel.Resources>
<!--Returns a Brush for the header of a GroupItem.-->
<AlternationConverter x:Key="GroupHeaderBackgroundConverter">
<SolidColorBrush>LightBlue</SolidColorBrush>
<SolidColorBrush>LightSteelBlue</SolidColorBrush>
</AlternationConverter>
<!--Returns a Brush for a ListBoxItem.-->
<AlternationConverter x:Key="BackgroundConverter">
<SolidColorBrush>Silver</SolidColorBrush>
<SolidColorBrush>LightGray</SolidColorBrush>
<SolidColorBrush>GhostWhite</SolidColorBrush>
</AlternationConverter>
</StackPanel.Resources>
<ListBox ItemsSource="{Binding Source={StaticResource groupedData}}"
DisplayMemberPath="CityName" AlternationCount="3" Name="lb">
<ListBox.GroupStyle>
<!--Set alternating backgrounds on the header of each group.-->
<GroupStyle AlternationCount="2">
<GroupStyle.HeaderTemplate>
<DataTemplate>
<TextBlock FontWeight="Bold"
Text="{Binding Path=Name}"
Background="{Binding
RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type GroupItem}},
Path=(ItemsControl.AlternationIndex),
Converter={StaticResource
GroupHeaderBackgroundConverter}}"/>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</ListBox.GroupStyle>
<ListBox.ItemContainerStyle>
<!--Set alternating backgrounds on the items in the ListBox.-->
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="Background"
Value="{Binding RelativeSource={RelativeSource Self},
Path=(ItemsControl.AlternationIndex),
Converter={StaticResource BackgroundConverter}}"/>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
</StackPanel>
Poznámky
Vlastnost AlternationCount a připojená ItemsControl.AlternationIndex vlastnost umožňují určit vzhled pro dva nebo více střídavých GroupItem objektů. Můžete například zadat střídavé barvy pozadí pro každou třetinu GroupItem v objektu ItemsControl. Každé ItemsControl.AlternationIndex z nich GroupItem je přiřazeno v sadě ItemsControl. ItemsControl.AlternationIndex začíná na 0, přírůstky, dokud není AlternationCount mínus 1, a pak se restartuje na 0. Pokud je například AlternationCount 3 a v následující ItemsControltabulce je sedm GroupItem objektů, uvádí ItemsControl.AlternationIndex následující tabulka pro každou položku.
| GroupItem Pozice vItemsControl | 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ů střídavých GroupItem objektů. Jedna metoda je vytvořit vazbu vlastností v HeaderTemplate nebo ContainerStyle na GroupStyleItemsControl.AlternationIndex. Pak můžete použít AlternationConverter k určení, která hodnota se má použít na GroupItem hodnotu, která má určitou ItemsControl.AlternationIndex hodnotu. Triggery můžete také použít ke změně hodnoty vlastnosti v závislosti na hodnotě jeho ItemsControl.AlternationIndex.