HierarchicalDataTemplate.AlternationCount Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta il numero di contenitori di elementi alternati per gli elementi figlio.
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
Valore della proprietà
Numero di contenitori di elementi alternati per il livello successivo di elementi.
Esempio
Nell'esempio seguente viene creato un TreeView oggetto associato ai dati a tre livelli profondi e ogni elemento viene visualizzato in un TextBlockoggetto . Gli TextBlock oggetti nel primo livello hanno gli stessi valori delle proprietà, gli TextBlock oggetti nel secondo livello usano valori alternati per la proprietà e gli TextBlock oggetti nel terzo livello usano valori alternati per la FontStyle Background proprietà.
Poiché per HierarchicalDataTemplate il primo livello, Level1Data
, ha la AlternationCount proprietà impostata su 2, l'oggetto ItemsControl.AlternationIndex per gli TreeViewItem oggetti nel secondo livello alterna tra 0 e 1. HierarchicalDataTemplate Nella classe per il secondo livello , Level2Data
l'oggetto dell'oggetto TextBlock è associato all'oggetto FontStyle ItemsControl.AlternationIndex e AlternationConverter viene fornito per convertire l'oggetto ItemsControl.AlternationIndex in un oggetto alternativo FontStyle. Esiste una relazione simile tra Level2Data
e : l'oggetto AlternationCount è impostato su 3 su Level2Data
e in ha la relativa Background proprietà associata all'oggetto ItemsControl.AlternationIndexTextBlock Level3Ddata
.Level3Data
<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>
Commenti
Le AlternationCount proprietà e ItemsControl.AlternationIndex consentono di specificare l'aspetto per due o più contenitori di elementi alternati. Ad esempio, è possibile specificare colori di sfondo alternati per ogni terzo elemento in un ItemsControloggetto . L'oggetto ItemsControl.AlternationIndex viene assegnato a ogni contenitore di elementi nell'oggetto ItemsControl. ItemsControl.AlternationIndex inizia a 0, incrementa fino a quando non è AlternationCount meno 1 e quindi riavvia a 0. Ad esempio, se AlternationCount è 3 e sono presenti sette elementi nella ItemsControltabella seguente elenca gli ItemsControl.AlternationIndex elementi per ogni elemento.
Posizione dell'elemento nell'oggetto ItemsControl | ItemsControl.AlternationIndex |
---|---|
1 | 0 |
2 | 1 |
3 | 2 |
4 | 0 |
5 | 1 |
6 | 2 |
7 | 0 |
Quando si imposta la proprietà, si indica che gli elementi figlio devono ottenere un ItemsControl.AlternationIndex intervallo, non l'elemento AlternationCount applicatoHierarchicalDataTemplate. Ad esempio, se un oggetto denominato usa un HeaderedItemsControl oggetto con il AlternationCount set, i contenitori di elementi figlio degli elementi figlio di aHeaderedItemsControl
avranno un HierarchicalDataTemplate ItemsControl.AlternationIndexoggetto , non il contenitore di elementi per aHeaderedItemsControl
.aHeaderedItemsControl
Esistono diversi metodi che è possibile usare per specificare aspetti diversi per i contenitori di elementi alternativi. Un metodo consiste nell'associare le proprietà del contenitore elementi all'oggetto ItemsControl.AlternationIndex. È quindi possibile usare un AlternationConverter oggetto per specificare quale valore deve essere applicato al contenitore di elementi con un determinato ItemsControl.AlternationIndex valore. È anche possibile usare trigger per modificare il valore della proprietà di un contenitore di elementi a seconda del valore del relativo ItemsControl.AlternationIndex.