GroupStyle.AlternationCount 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置交替 GroupItem 对象的数量。
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
属性值
交替 GroupItem 对象的数量。
示例
以下示例创建一个 ListBox 绑定到 CollectionViewSource 该集合中项的绑定项。 本示例通过执行以下操作替换两种颜色之间的每个 GroupItem 颜色的标头的背景:
设置为 AlternationCount 2。
创建一个 AlternationConverter 返回 a SolidColorBrush,具体取决于其 ItemsControl.AlternationIndex值。
将Background属性中的HeaderTemplate值TextBlock绑定到ItemsControl.AlternationIndex该属性并提供 AlternationConverter。 请注意, AlternationIndex 附加属性在设置上 GroupItem,绑定用于 FindAncestor 获取其值。
该示例还通过设置AlternationCount每个ListBoxItemsControl.AlternationIndex颜色的项ListBox和绑定Background来替换三种颜色中的ListBox项的背景。 在这种情况下,背景在三种颜色之间交替。
CollectionViewSource未显示项目分组的项。 有关如何对项进行分组的信息,请参阅 如何:使用 XAML 中的视图对数据进行排序和分组。
<StackPanel>
<StackPanel.Resources>
<!--Returns a Brush for the header of a GroupItem.-->
<AlternationConverter x:Key="GroupHeaderBackgroundConverter">
<SolidColorBrush>LightBlue</SolidColorBrush>
<SolidColorBrush>LightSteelBlue</SolidColorBrush>
</AlternationConverter>
<!--Returns a Brush for a ListBoxItem.-->
<AlternationConverter x:Key="BackgroundConverter">
<SolidColorBrush>Silver</SolidColorBrush>
<SolidColorBrush>LightGray</SolidColorBrush>
<SolidColorBrush>GhostWhite</SolidColorBrush>
</AlternationConverter>
</StackPanel.Resources>
<ListBox ItemsSource="{Binding Source={StaticResource groupedData}}"
DisplayMemberPath="CityName" AlternationCount="3" Name="lb">
<ListBox.GroupStyle>
<!--Set alternating backgrounds on the header of each group.-->
<GroupStyle AlternationCount="2">
<GroupStyle.HeaderTemplate>
<DataTemplate>
<TextBlock FontWeight="Bold"
Text="{Binding Path=Name}"
Background="{Binding
RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type GroupItem}},
Path=(ItemsControl.AlternationIndex),
Converter={StaticResource
GroupHeaderBackgroundConverter}}"/>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</ListBox.GroupStyle>
<ListBox.ItemContainerStyle>
<!--Set alternating backgrounds on the items in the ListBox.-->
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="Background"
Value="{Binding RelativeSource={RelativeSource Self},
Path=(ItemsControl.AlternationIndex),
Converter={StaticResource BackgroundConverter}}"/>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
</StackPanel>
注解
属性 AlternationCount 和 ItemsControl.AlternationIndex 附加属性使你可以指定两个或多个交替 GroupItem 对象的外观。 例如,可以指定第三分之一GroupItemItemsControl的交替背景色。 分配给ItemsControl.AlternationIndexGroupItem每个项ItemsControl。 ItemsControl.AlternationIndex 从 0 开始,增量直到 AlternationCount 减 1,然后以 0 重新启动。 例如,如果AlternationCount为 3,并且其中ItemsControl有七GroupItem个对象,下表列出了ItemsControl.AlternationIndex每个项的对象。
GroupItem位置ItemsControl | ItemsControl.AlternationIndex |
---|---|
1 | 0 |
2 | 1 |
3 | 2 |
4 | 0 |
5 | 1 |
6 | 2 |
7 | 0 |
可以使用多种方法为交替 GroupItem 对象指定不同的外观。 一种方法是将属性或HeaderTemplate ContainerStyle GroupStyle属性绑定到 。ItemsControl.AlternationIndex 然后,可以使用一个值 AlternationConverter 来指定应应用于 GroupItem 具有特定 ItemsControl.AlternationIndex 值的值。 还可以使用触发器根据属性值 ItemsControl.AlternationIndex更改属性的值。