HierarchicalDataTemplate.AlternationCount 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置子项的交替项容器的数量。
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
属性值
下一级项的交替项容器的数量。
示例
以下示例创建一个 TreeView 绑定到深度为三个级别的数据,并且每个项显示在一个 TextBlock中。 TextBlock第一个级别中的对象具有相同的属性值,TextBlock第二级中的对象对FontStyle属性使用交替值,TextBlock第三个级别中的对象对Background属性使用交替值。
由于对于HierarchicalDataTemplate第一个级别,Level1Data
AlternationCount属性设置为 2,ItemsControl.AlternationIndexTreeViewItem第二个级别中的对象在 0 和 1 之间交替。 HierarchicalDataTemplate在第二个级别中, Level2Data
FontStyle TextBlock将绑定在ItemsControl.AlternationIndex一个级别,并提供一个AlternationConverter用于转换为ItemsControl.AlternationIndex交替的FontStyle函数。 存在类似的关系:Level2Data
设置为 3 onLevel2Data
,并且TextBlock其BackgroundLevel3Ddata
属性绑定到该ItemsControl.AlternationIndex属性。AlternationCount 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>
注解
使用 AlternationCount 和 ItemsControl.AlternationIndex 属性可以指定两个或多个交替项容器的外观。 For example, you can specify alternating background colors for every third item in an ItemsControl. The ItemsControl.AlternationIndex is assigned to each item container in the ItemsControl. ItemsControl.AlternationIndex 从 0 开始,增量直到 AlternationCount 减 1,然后重启为 0。 例如,如果 AlternationCount 为 3,并且有七个项目, ItemsControl下表列出了 ItemsControl.AlternationIndex 每个项。
项在 ItemsControl | ItemsControl.AlternationIndex |
---|---|
1 | 0 |
2 | 1 |
3 | 2 |
4 | 0 |
5 | 1 |
6 | 2 |
7 | 0 |
设置 AlternationCount 该属性时,表示子项应获取该范围内的值 ItemsControl.AlternationIndex ,而不是应用于该属性的 HierarchicalDataTemplate 项。 例如,如果HeaderedItemsControl调用方aHeaderedItemsControl
使用集HierarchicalDataTemplateAlternationCount,则子项的项aHeaderedItemsControl
容器将具有一个ItemsControl.AlternationIndex,而不是项aHeaderedItemsControl
容器。
有多种方法可用于为交替项容器指定不同的外观。 一种方法是将项容器的属性绑定到 .ItemsControl.AlternationIndex 然后,可以使用一个 AlternationConverter 值指定应应用于具有特定 ItemsControl.AlternationIndex 值的项容器的值。 还可以使用触发器根据项容器的值更改项容器属性的值 ItemsControl.AlternationIndex。