HierarchicalDataTemplate.AlternationCount Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Alt öğeler için değişen öğe kapsayıcılarının sayısını alır veya ayarlar.
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
Özellik Değeri
Sonraki öğe düzeyi için değişen öğe kapsayıcılarının sayısı.
Örnekler
Aşağıdaki örnek, üç düzey derinliğindeki verilere bağlı bir TreeView oluşturur ve her öğe içinde TextBlockgörüntülenir. TextBlock birinci düzeydeki nesneler aynı özellik değerlerine sahiptir, ikinci düzeydeki TextBlock nesneler özellik için FontStyle değişen değerler kullanır ve TextBlock üçüncü düzeydeki nesneler özellik için Background alternatif değerler kullanır.
HierarchicalDataTemplate İlk düzey Level1Data
AlternationCount için , özelliği 2 olarak ayarlandığından, ItemsControl.AlternationIndex ikinci düzeydeki TreeViewItem nesneler için 0 ile 1 arasında değişir.
HierarchicalDataTemplate İkinci düzeyde, Level2Data
FontStyle öğesinin TextBlock değeri öğesine bağlıdır ItemsControl.AlternationIndex ve AlternationConverter öğesini alternatif FontStylebir öğesine dönüştürmek ItemsControl.AlternationIndex için sağlanır. ile arasında Level2Data
benzer bir ilişki vardır: üzerinde AlternationCount 3 Level2Data
olarak ayarlanır ve içindeki Level3Ddata
öğesinin TextBlock özelliği ile ItemsControl.AlternationIndexilişkilidirBackground.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>
Açıklamalar
ve ItemsControl.AlternationIndex özellikleri, AlternationCount iki veya daha fazla değişen öğe kapsayıcısının görünümünü belirtmenizi sağlar. Örneğin, içindeki ItemsControlher üçüncü öğe için alternatif arka plan renkleri belirtebilirsiniz. içindeki ItemsControl.AlternationIndex her öğe kapsayıcısına ItemsControlatanır. ItemsControl.AlternationIndex 0'da başlar, eksi 1 olana AlternationCount kadar artar ve sonra 0'da yeniden başlatılır. Örneğin, 3 ise AlternationCount ve içinde ItemsControlyedi öğe varsa, aşağıdaki tabloda her öğenin listesi ItemsControl.AlternationIndex yer alır.
Öğenin konumu ItemsControl | ItemsControl.AlternationIndex |
---|---|
1 | 0 |
2 | 1 |
3 | 2 |
4 | 0 |
5 | 1 |
6 | 2 |
7 | 0 |
özelliğini ayarladığınızdaAlternationCount, alt öğelerin bu öğeye uygulanmış olan öğeyi HierarchicalDataTemplate değil, bu aralıkta bir alması ItemsControl.AlternationIndex gerektiğini belirtirsiniz. Örneğin, bir çağrı kümesiyle birlikte bir kullanırsaHeaderedItemsControl, öğesinin alt öğelerinin aHeaderedItemsControl
öğe kapsayıcıları için aHeaderedItemsControl
öğe kapsayıcısı değil, öğesine ItemsControl.AlternationIndexsahip olur.HierarchicalDataTemplateAlternationCountaHeaderedItemsControl
Değişen öğe kapsayıcıları için farklı görünümler belirtmek için kullanabileceğiniz çeşitli yöntemler vardır. Yöntemlerden biri items kapsayıcısının özelliklerini öğesine bağlamaktır ItemsControl.AlternationIndex. Ardından, belirli ItemsControl.AlternationIndex bir değere sahip öğe kapsayıcısına hangi değerin uygulanacağını belirtmek için bir AlternationConverter kullanabilirsiniz. Tetikleyicileri, bir öğe kapsayıcısının özelliğinin değerine bağlı olarak değerini ItemsControl.AlternationIndexdeğiştirmek için de kullanabilirsiniz.