HierarchicalDataTemplate.AlternationCount Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define o número de contêineres de itens alternados para os itens filhos.
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
Valor da propriedade
O número de contêineres de item alternados para o próximo nível de itens.
Exemplos
O exemplo a seguir cria um TreeView associado a dados com três níveis de profundidade e cada item é exibido em um TextBlock. Os TextBlock objetos no primeiro nível têm os mesmos valores de propriedade, os TextBlock objetos no segundo nível usam valores alternados para a FontStyle propriedade e os TextBlock objetos no terceiro nível usam valores alternados para a Background propriedade.
Como o HierarchicalDataTemplate primeiro nível tem Level1Data
a AlternationCount propriedade definida como 2, para os ItemsControl.AlternationIndex TreeViewItem objetos no segundo nível alterna entre 0 e 1. HierarchicalDataTemplate No segundo nível, Level2Data
o FontStyle do TextBlock é associado ao ItemsControl.AlternationIndex e um AlternationConverter é fornecido para converter em ItemsControl.AlternationIndex um alternadoFontStyle. Existe uma relação semelhante entre: o conjunto é definido como 3 ativado Level2Data
e o TextBlock in Level3Ddata
tem sua Background propriedade associada ao ItemsControl.AlternationIndex.AlternationCount Level3Data``Level2Data
<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>
Comentários
As AlternationCount propriedades e as ItemsControl.AlternationIndex propriedades permitem que você especifique a aparência de dois ou mais contêineres de itens alternados. Por exemplo, você pode especificar cores de plano de fundo alternadas para cada terceiro item em um ItemsControl. O ItemsControl.AlternationIndex item é atribuído a cada contêiner de item no ItemsControl. ItemsControl.AlternationIndex começa em 0, incrementa até ser AlternationCount menos 1 e, em seguida, reinicia em 0. Por exemplo, se AlternationCount for 3 e houver sete itens na tabela a ItemsControlseguir listará o ItemsControl.AlternationIndex item para cada item.
Posição do item no ItemsControl | ItemsControl.AlternationIndex |
---|---|
1 | 0 |
2 | 1 |
3 | 2 |
4 | 0 |
5 | 1 |
6 | 2 |
7 | 0 |
Ao definir a AlternationCount propriedade, você está indicando que os itens filho devem obter um ItemsControl.AlternationIndex nesse intervalo, não o item que tem isso HierarchicalDataTemplate aplicado a ela. Por exemplo, se um HeaderedItemsControl chamado aHeaderedItemsControl
usa um HierarchicalDataTemplate com o AlternationCount conjunto, os contêineres de item dos itens filho terão aHeaderedItemsControl
um ItemsControl.AlternationIndexcontêiner aHeaderedItemsControl
de item para .
Há vários métodos que você pode usar para especificar diferentes aparências para os contêineres de itens alternados. Um método é associar propriedades do contêiner de itens ao ItemsControl.AlternationIndex. Em seguida, você pode usar um AlternationConverter para especificar qual valor deve ser aplicado ao contêiner de item que tem um determinado ItemsControl.AlternationIndex valor. Você também pode usar gatilhos para alterar o valor da propriedade de um contêiner de item, dependendo do valor de seu ItemsControl.AlternationIndex.