GroupStyle.AlternationCount 属性

定义

获取或设置交替 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

属性值

Int32

交替 GroupItem 对象的数量。

示例

以下示例创建一个 ListBox 绑定到 CollectionViewSource 该集合中项的绑定项。 本示例通过执行以下操作替换两种颜色之间的每个 GroupItem 颜色的标头的背景:

该示例还通过设置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>

注解

属性 AlternationCountItemsControl.AlternationIndex 附加属性使你可以指定两个或多个交替 GroupItem 对象的外观。 例如,可以指定第三分之一GroupItemItemsControl的交替背景色。 分配给ItemsControl.AlternationIndexGroupItem每个项ItemsControlItemsControl.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更改属性的值。

适用于