Compartir vía


GroupStyle.AlternationCount Propiedad

Definición

Obtiene o establece el número de objetos GroupItem alternos.

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 propiedad

Int32

Número de objetos GroupItem alternos.

Ejemplos

En el ejemplo siguiente se crea un ListBox objeto enlazado a un CollectionViewSource objeto que agrupa los elementos de la colección. En el ejemplo se alterna el fondo del encabezado de cada GroupItem uno entre dos colores haciendo lo siguiente:

En el ejemplo también se alterna el fondo de los elementos de ListBox entre tres colores estableciendo en AlternationCount y ListBox enlazando el Background de cada ListBox uno a ItemsControl.AlternationIndex. En este caso, el fondo alterna entre tres colores.

Que CollectionViewSource agrupa los elementos no se muestra. Para obtener información sobre cómo agrupar elementos, consulta Cómo: Ordenar y agrupar datos mediante una vista en 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>

Comentarios

La AlternationCount propiedad y la ItemsControl.AlternationIndex propiedad adjunta permiten especificar la apariencia de dos o más objetos alternados GroupItem . Por ejemplo, puede especificar colores de fondo alternados para cada tercio GroupItem de un ItemsControl. ItemsControl.AlternationIndex se asigna a cada GroupItem en .ItemsControl ItemsControl.AlternationIndex comienza en 0, se incrementa hasta que es AlternationCount menos 1 y, a continuación, se reinicia en 0. Por ejemplo, si AlternationCount es 3 y hay siete GroupItem objetos en ItemsControl, en la tabla siguiente se muestra el para ItemsControl.AlternationIndex cada elemento.

Posición de GroupItem en ItemsControl ItemsControl.AlternationIndex
1 0
2 1
3 2
4 0
5 1
6 2
7 0

Hay varios métodos que puede usar para especificar diferentes apariencias para los objetos alternados GroupItem . Un método consiste en enlazar propiedades de HeaderTemplate o ContainerStyle de GroupStyle a .ItemsControl.AlternationIndex A continuación, puede usar un AlternationConverter para especificar qué valor se debe aplicar al GroupItem que tiene un valor determinado ItemsControl.AlternationIndex . También puede usar desencadenadores para cambiar el valor de una propiedad en función del valor de su ItemsControl.AlternationIndex.

Se aplica a