HierarchicalDataTemplate.AlternationCount Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee haalt u het aantal afwisselende itemcontainers voor de onderliggende items op of stelt u deze in.
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
Waarde van eigenschap
Het aantal afwisselende itemcontainers voor het volgende niveau van items.
Voorbeelden
In het volgende voorbeeld wordt een TreeView gegevens gemaakt die is gebonden aan gegevens die drie niveaus diep zijn en elk item wordt weergegeven in een TextBlock. De TextBlock objecten in het eerste niveau hebben dezelfde eigenschapswaarden, de TextBlock objecten op het tweede niveau gebruiken afwisselende waarden voor de FontStyle eigenschap en de TextBlock objecten op het derde niveau gebruiken afwisselende waarden voor de Background eigenschap.
Omdat de HierarchicalDataTemplate eigenschap voor het eerste niveau is Level1Dataingesteld op 2, wordt de AlternationCountItemsControl.AlternationIndex eigenschap voor de TreeViewItem objecten in het tweede niveau afwisselend tussen 0 en 1. In het HierarchicalDataTemplate tweede niveau, Level2Datade van de FontStyleTextBlock is gebonden aan de ItemsControl.AlternationIndex en een AlternationConverter wordt opgegeven om de ItemsControl.AlternationIndex om te zetten naar een alternatie FontStyle. Er bestaat een vergelijkbare relatie tussen en: De Level2Data waarde is ingesteld op 3 op Level3Dataen de AlternationCount binnenzijde Level2Data heeft de TextBlock eigenschap gebonden aan de Level3Ddata.BackgroundItemsControl.AlternationIndex
<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>
Opmerkingen
Met de AlternationCount en ItemsControl.AlternationIndex eigenschappen kunt u het uiterlijk voor twee of meer afwisselende itemcontainers opgeven. U kunt bijvoorbeeld afwisselende achtergrondkleuren opgeven voor elk derde item in een ItemsControl. De ItemsControl.AlternationIndex is toegewezen aan elke itemcontainer in de ItemsControl. ItemsControl.AlternationIndex begint bij 0, incrementeert totdat het min 1 is AlternationCount en start vervolgens opnieuw op 0. Als dit bijvoorbeeld AlternationCount 3 is en er zeven items in de ItemsControltabel staan, wordt in de volgende tabel het ItemsControl.AlternationIndex voor elk item vermeld.
| Positie van item in de ItemsControl | ItemsControl.AlternationIndex |
|---|---|
| 1 | 0 |
| 2 | 1 |
| 3 | 2 |
| 4 | 0 |
| 5 | 1 |
| 6 | 2 |
| 7 | 0 |
Wanneer u de AlternationCount eigenschap instelt, geeft u aan dat de onderliggende items een ItemsControl.AlternationIndex binnen dat bereik moeten krijgen, niet het item waarop dit HierarchicalDataTemplate is toegepast. Als een HeaderedItemsControl aangeroepen aHeaderedItemsControl naam bijvoorbeeld een HierarchicalDataTemplate met de AlternationCount set gebruikt, hebben de itemcontainers van de onderliggende items aHeaderedItemsControl een ItemsControl.AlternationIndex, niet de itemcontainer voor aHeaderedItemsControl.
Er zijn verschillende methoden die u kunt gebruiken om verschillende weergaven op te geven voor de containers voor afwisselende items. Een methode is het binden van eigenschappen van de itemscontainer aan de ItemsControl.AlternationIndex. Vervolgens kunt u een AlternationConverter waarde opgeven die moet worden toegepast op de itemcontainer met een bepaalde ItemsControl.AlternationIndex waarde. U kunt triggers ook gebruiken om de waarde van de eigenschap van een itemcontainer te wijzigen, afhankelijk van de waarde van ItemsControl.AlternationIndexde eigenschap.