GroupStyle.AlternationCount Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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:
Establece AlternationCount en 2.
Crea un AlternationConverter objeto que devuelve un SolidColorBrushobjeto , en función del valor de ItemsControl.AlternationIndex.
Enlaza el Background de TextBlock en a HeaderTemplate la ItemsControl.AlternationIndex propiedad y proporciona .AlternationConverter Tenga en cuenta que la AlternationIndex propiedad adjunta se establece en GroupItemy el enlace usa FindAncestor para obtener su valor.
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.