GroupStyle.AlternationCount Propriedade

Definição

Obtém ou define o número de objetos alternados 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

Valor de Propriedade

O número de objetos alternados GroupItem .

Exemplos

O exemplo seguinte cria um ListBox que está ligado a um CollectionViewSource que agrupa os itens da coleção. O exemplo alterna o fundo do cabeçalho de cada GroupItem uma entre duas cores, fazendo o seguinte:

O exemplo também alterna o fundo dos itens em entre ListBox três cores, colocando o AlternationCount no ListBox e ligando o Background de cada ListBox um ao ItemsControl.AlternationIndex. Neste caso, o fundo alterna entre três cores.

O CollectionViewSource que agrupa os itens não é mostrado. Para informações sobre como agrupar um item, veja Como: Ordenar e Agrupar Dados Usando uma Vista em 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>

Observações

A AlternationCount propriedade e a ItemsControl.AlternationIndex propriedade anexa permitem-lhe especificar a aparência de dois ou mais objetos alternados GroupItem . Por exemplo, pode especificar cores de fundo alternadas para cada terceiro GroupItem em um ItemsControl. O ItemsControl.AlternationIndex é atribuído a cada GroupItem um no ItemsControl. ItemsControl.AlternationIndex começa em 0, incrementa até ser AlternationCount menos 1, e depois recomeça em 0. Por exemplo, se AlternationCount for 3 e houver sete GroupItem objetos no ItemsControl, a tabela seguinte lista os ItemsControl.AlternationIndex para cada item.

Posição de GroupItem no ItemsControl ItemsControl.AlternationIndex
1 0
2 1
3 2
4 0
5 1
6 2
7 0

Existem vários métodos que pode usar para especificar diferentes aparências para os objetos alternados GroupItem . Um método é ligar propriedades em ou HeaderTemplate de ao ContainerStyleGroupStyle.ItemsControl.AlternationIndex Pode então usar um AlternationConverter para especificar qual valor deve ser aplicado ao GroupItem que tem um determinado ItemsControl.AlternationIndex valor. Também pode usar gatilhos para alterar o valor de uma propriedade dependendo do valor do ItemsControl.AlternationIndexseu .

Aplica-se a