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

屬性值

替代 GroupItem 物件的數目。

範例

下列範例會 ListBox 建立系結至 CollectionViewSource 將集合中專案分組的 。 此範例會執行下列動作,以替代兩種色彩之間每個 GroupItem 標頭的背景:

此範例也會藉由將 和 每個 ItemsControl.AlternationIndex 的 系 ListBoxAlternationCountBackground 設定為 ,在 三種色彩之間替代 專案的背景 ListBoxListBox 在此情況下,背景會以三種色彩替代。

CollectionViewSource不會顯示群組專案的 。 如需如何分組專案的資訊,請參閱 How to: Sort and Group Data Using a View in 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.AlternationIndex 指派給 GroupItem 中的每個 ItemsControlItemsControl.AlternationIndex 從 0 開始,遞增直到減 AlternationCount 1,然後在 0 重新開機。 例如,如果 AlternationCount 為 3,且 中有七 GroupItem 個 物件, ItemsControl 下表列出 ItemsControl.AlternationIndex 每個專案的 。

GroupItem在 中的位置ItemsControl ItemsControl.AlternationIndex
1 0
2 1
3 2
4 0
5 1
6 2
7 0

您可以使用數種方法來指定替代 GroupItem 物件的不同外觀。 其中一個方法是將 或 ContainerStyleGroupStyle 中的 HeaderTemplate 屬性系結至 ItemsControl.AlternationIndex 。 然後 AlternationConverter ,您可以使用 來指定應套用至 GroupItem 具有特定 ItemsControl.AlternationIndex 值的 。 您也可以使用觸發程式,根據屬性的值來變更屬性 ItemsControl.AlternationIndex 的值。

適用於