GroupStyle.AlternationCount Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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:
Define AlternationCount como 2.
Cria um AlternationConverter que retorna um SolidColorBrush, dependendo do valor de ItemsControl.AlternationIndex.
Associa o Background de TextBlock dentro HeaderTemplate à ItemsControl.AlternationIndex propriedade e fornece o AlternationConverter. Observe que a AlternationIndex propriedade anexada está definida no GroupIteme a associação usa FindAncestor para obter seu valor.
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.