GroupStyle.AlternationCount Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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:
Define AlternationCount para 2.
Cria um AlternationConverter que devolve um SolidColorBrush, dependendo do valor de ItemsControl.AlternationIndex.
Vincula o Background do TextBlock no HeaderTemplate à ItemsControl.AlternationIndex propriedade e fornece o AlternationConverter. Note que a AlternationIndex propriedade anexada está definida no GroupItem, e a ligação é usada FindAncestor para obter o seu valor.
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 .