Condividi tramite


GroupStyle.AlternationCount Proprietà

Definizione

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à

Int32

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:

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.

Si applica a