GroupStyle.AlternationCount Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta il numero di oggetti GroupItem alternativi.
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
Valore della proprietà
Numero di oggetti GroupItem alternativi.
Esempio
Nell'esempio seguente viene creato un ListBox oggetto associato a un CollectionViewSource oggetto che raggruppa gli elementi nella raccolta. L'esempio alterna lo sfondo per l'intestazione di ognuno GroupItem tra due colori eseguendo le operazioni seguenti:
Imposta AlternationCount su 2.
Crea un oggetto che restituisce AlternationConverter un SolidColorBrushoggetto , a seconda del valore di ItemsControl.AlternationIndex.
Associa l'oggetto Background di nell'oggetto TextBlock HeaderTemplate alla ItemsControl.AlternationIndex proprietà e fornisce l'oggetto AlternationConverter. Si noti che la AlternationIndex proprietà associata è impostata su GroupIteme l'associazione usa FindAncestor per ottenere il relativo valore.
Nell'esempio viene inoltre alternato lo sfondo degli elementi in tra ListBox tre colori impostando su ListBox e associando AlternationCount l'oggetto Background di ognuno ListBox a ItemsControl.AlternationIndex. In questo caso, lo sfondo si alterna tra tre colori.
Oggetto CollectionViewSource che raggruppa gli elementi non viene visualizzato. Per informazioni su come raggruppare l'elemento, vedere Procedura: Ordinare e raggruppare i dati usando una visualizzazione in 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>
Commenti
La AlternationCount proprietà e la ItemsControl.AlternationIndex proprietà associata consentono di specificare l'aspetto per due o più oggetti alternati GroupItem . Ad esempio, è possibile specificare colori di sfondo alternati per ogni terzo GroupItem in un oggetto ItemsControl. L'oggetto ItemsControl.AlternationIndex viene assegnato a ognuno GroupItem di essi nell'oggetto ItemsControl. ItemsControl.AlternationIndex inizia a 0, incrementa fino a quando non è AlternationCount meno 1 e quindi riavvia a 0. Ad esempio, se AlternationCount è 3 e sono presenti sette GroupItem oggetti nella ItemsControltabella seguente vengono elencati per ItemsControl.AlternationIndex ogni elemento.
Posizione di GroupItem in ItemsControl | ItemsControl.AlternationIndex |
---|---|
1 | 0 |
2 | 1 |
3 | 2 |
4 | 0 |
5 | 1 |
6 | 2 |
7 | 0 |
Esistono diversi metodi che è possibile usare per specificare aspetti diversi per gli oggetti alternati GroupItem . Un metodo consiste nell'associare le proprietà nell'oggetto HeaderTemplate o ContainerStyle dell'oggetto GroupStyle ItemsControl.AlternationIndexa . È quindi possibile usare un AlternationConverter oggetto per specificare il valore da applicare a GroupItem che ha un determinato ItemsControl.AlternationIndex valore. È anche possibile usare i trigger per modificare il valore di una proprietà a seconda del valore del relativo ItemsControl.AlternationIndex.