HierarchicalDataTemplate.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 kontejnerů střídavých položek pro podřízené položky.
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 kontejnerů položek pro další úroveň položek.
Příklady
Následující příklad vytvoří objekt TreeView , který je vázaný na data, která mají hloubku tří úrovní, a každá položka se zobrazí v objektu TextBlock. Objekty TextBlock na první úrovni mají stejné hodnoty vlastností, TextBlock objekty na druhé úrovni používají pro FontStyle vlastnost střídavé hodnoty a TextBlock objekty na třetí úrovni používají pro Background vlastnost střídavé hodnoty.
HierarchicalDataTemplate Vzhledem k tomu, Level1Data
že pro první úroveň má vlastnost nastavenou AlternationCount na hodnotu 2, ItemsControl.AlternationIndex objekty TreeViewItem ve druhé úrovni se střídají mezi 0 a 1. V objektu HierarchicalDataTemplate pro druhou úroveň Level2Data
je hodnota FontStyle z objektu TextBlock vázána k objektu ItemsControl.AlternationIndex a AlternationConverter je poskytnuta hodnota , která převede ItemsControl.AlternationIndex hodnotu na střídavou FontStylehodnotu . Podobný vztah existuje mezi Level2Data
a : Hodnota AlternationCount je nastavená na Level2Data
hodnotu 3 v a TextBlock hodnota v Level3Ddata
má Background svoji vlastnost vázanou na ItemsControl.AlternationIndexLevel3Data
.
<StackPanel>
<StackPanel.Resources>
<!--Returns alternating brushes.-->
<AlternationConverter x:Key="TeamsBackgroundConverter">
<SolidColorBrush>LimeGreen</SolidColorBrush>
<SolidColorBrush>SpringGreen</SolidColorBrush>
<SolidColorBrush>Chartreuse</SolidColorBrush>
</AlternationConverter>
<!--The DataTemplate used by TreeViewItems in the third level
of the TreeView.-->
<DataTemplate x:Key="Level3Data">
<TextBlock Text="{Binding Path=Name}"
Background="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type TreeViewItem}},
Path=(ItemsControl.AlternationIndex),
Converter={StaticResource TeamsBackgroundConverter}}"/>
</DataTemplate>
<!--Returns altnernating FontStyles.-->
<AlternationConverter x:Key="LeagueFontStyleConverter">
<FontStyle >Italic</FontStyle>
<FontStyle >Normal</FontStyle>
</AlternationConverter>
<!--The HierarchicalDataTemplate used by TreeViewItems
in the second level of the TreeView.-->
<HierarchicalDataTemplate x:Key="Level2Data"
ItemsSource="{Binding Path=Teams}"
ItemTemplate="{StaticResource Level3Data}"
AlternationCount="3">
<TextBlock Text="{Binding Path=Name}"
FontStyle="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type TreeViewItem}},
Path=(ItemsControl.AlternationIndex),
Converter={StaticResource LeagueFontStyleConverter}}"/>
</HierarchicalDataTemplate>
<!--The HierarchicalDataTemplate used by TreeViewItems
in the first level of the TreeView.-->
<HierarchicalDataTemplate x:Key="Level1Data"
ItemsSource="{Binding Path=Divisions}"
ItemTemplate="{StaticResource Level2Data}"
AlternationCount="2">
<TextBlock Text="{Binding Path=Name}" FontWeight="Bold"/>
</HierarchicalDataTemplate>
<Style TargetType="TreeViewItem">
<Setter Property="IsExpanded" Value="True"/>
</Style>
</StackPanel.Resources>
<TreeView ItemsSource="{Binding Source={StaticResource MyTreeViewData}}"
ItemTemplate="{StaticResource Level1Data}"/>
</StackPanel>
Poznámky
Vlastnosti AlternationCount a ItemsControl.AlternationIndex umožňují určit vzhled dvou nebo více kontejnerů střídavých 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řazena ke každému kontejneru položek v objektu ItemsControl. ItemsControl.AlternationIndex začíná na 0, přírůstky, dokud není AlternationCount mínus 1, a pak se restartuje v 0. Pokud AlternationCount je například hodnota 3 a v objektu ItemsControlje sedm položek, v následující tabulce je seznam ItemsControl.AlternationIndex 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 |
Při nastavování AlternationCount vlastnosti určujete, že podřízené položky by měly získat hodnotu ItemsControl.AlternationIndex v daném rozsahu, nikoli položku, která má tuto HierarchicalDataTemplate vlastnost použitou pro ni. Pokud například volaný používá se sadou , kontejnery položek podřízených položek budou aHeaderedItemsControl
mít ItemsControl.AlternationIndex, nikoli kontejner položky pro aHeaderedItemsControl
.AlternationCountHierarchicalDataTemplateHeaderedItemsControlaHeaderedItemsControl
Existuje několik metod, které můžete použít k určení různých vzhledů kontejnerů střídavých položek. Jednou z metod je vytvoření vazby vlastností kontejneru items na ItemsControl.AlternationIndex. Pak můžete použít k AlternationConverter určení hodnoty, která se má použít pro kontejner položek, který má určitou ItemsControl.AlternationIndex hodnotu. Triggery můžete také použít ke změně hodnoty vlastnosti kontejneru položek v závislosti na hodnotě .ItemsControl.AlternationIndex