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 objekt, který je svázán s objektem CollectionViewSource , který seskupuje položky v kolekci. Příklad střídá pozadí záhlaví každé z nich GroupItem mezi dvěma barvami. Uděláte to takto:
Nastaví AlternationCount na 2.
Vytvoří objekt AlternationConverter , který vrátí SolidColorBrushhodnotu , v závislosti na hodnotě ItemsControl.AlternationIndex.
Vytvoří vazbu objektu TextBlock v objektu HeaderTemplate na ItemsControl.AlternationIndex vlastnost a poskytne hodnotu AlternationConverter.Background Všimněte si, že připojená AlternationIndex vlastnost je nastavena na GroupItema vazba používá FindAncestor k získání své hodnoty.
Příklad také střídá pozadí položek mezi ListBox třemi barvami tak, že nastaví AlternationCountListBox na a vazbu Background každé z nich ListBox na ItemsControl.AlternationIndex. V tomto případě se pozadí střídá mezi třemi barvami.
Položka CollectionViewSource , která seskupuje položky, se nezobrazí. Informace o tom, jak seskupit položku, najdete v tématu Postupy: Řazení a seskupení 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ému ItemsControl.AlternationIndex z nich GroupItem je přiřazena ItemsControlv . ItemsControl.AlternationIndex začíná na 0, přírůstky až do AlternationCount mínus 1 a pak se restartuje v 0. Pokud AlternationCount je například hodnota 3 a v objektu ItemsControlje sedm GroupItem objektů , zobrazí následující tabulka seznam ItemsControl.AlternationIndex pro každou položku.
Pozice v GroupItemItemsControl | 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ů. Jednou z metod je vytvořit vazbu vlastností v objektu HeaderTemplateGroupStyle nebo ContainerStyle na ItemsControl.AlternationIndex. Potom můžete použít k AlternationConverter určení, která hodnota se má použít pro objekt GroupItem , který má určitou ItemsControl.AlternationIndex hodnotu. Triggery můžete také použít ke změně hodnoty vlastnosti v závislosti na hodnotě vlastnosti ItemsControl.AlternationIndex.