Compartilhar via


GroupStyle.AlternationCount Propriedade

Definição

Obtém ou define o número de objetos GroupItem alternados.

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 da propriedade

Int32

O número de objetos alternados GroupItem .

Exemplos

O exemplo a seguir cria um ListBox associado a um CollectionViewSource que agrupa os itens na coleção. O exemplo alterna a tela de fundo para o cabeçalho de cada GroupItem uma entre duas cores, fazendo o seguinte:

O exemplo também alterna a tela de fundo dos itens ListBox entre três cores definindo o AlternationCount sobre e ListBox associando o Background de cada ListBox um ao ItemsControl.AlternationIndex. Nesse caso, a tela de fundo alterna entre três cores.

O CollectionViewSource que agrupa os itens não é mostrado. Para obter informações sobre como agrupar item, consulte Como classificar e agrupar dados usando uma exibição 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>

Comentários

A AlternationCount propriedade e a ItemsControl.AlternationIndex propriedade anexada permitem que você especifique a aparência de dois ou mais objetos alternados GroupItem . Por exemplo, você pode especificar cores de plano de fundo alternadas para cada terço GroupItem em um ItemsControl. O ItemsControl.AlternationIndex valor é atribuído a cada GroupItem um no ItemsControl. ItemsControl.AlternationIndex começa em 0, incrementa até ser AlternationCount menos 1 e, em seguida, reinicia em 0. Por exemplo, se AlternationCount for 3 e houver sete GroupItem objetos, a tabela a ItemsControlseguir listará o ItemsControl.AlternationIndex item 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

Há vários métodos que você pode usar para especificar diferentes aparências para os objetos alternados GroupItem . Um método é associar propriedades no HeaderTemplate ou ContainerStyle do GroupStyle ItemsControl.AlternationIndex. Em seguida, você pode usar um AlternationConverter para especificar qual valor deve ser aplicado ao GroupItem que tem um determinado ItemsControl.AlternationIndex valor. Você também pode usar gatilhos para alterar o valor de uma propriedade, dependendo do valor de sua ItemsControl.AlternationIndex.

Aplica-se a