Sdílet prostřednictvím


GroupStyle.AlternationCount Vlastnost

Definice

Získá nebo nastaví počet střídavých GroupItem objektů.

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

Hodnota vlastnosti

Počet střídavých GroupItem objektů.

Příklady

Následující příklad vytvoří ListBox objekt, který je svázán s objektem CollectionViewSource , který seskupuje položky v kolekci. Příklad střídá pozadí záhlaví každé z nich GroupItem mezi dvěma barvami. Uděláte to takto:

Příklad také střídá pozadí položek mezi ListBox třemi barvami tak, že nastaví AlternationCountListBox na a vazbu Background každé z nich ListBox na ItemsControl.AlternationIndex. V tomto případě se pozadí střídá mezi třemi barvami.

Položka CollectionViewSource , která seskupuje položky, se nezobrazí. Informace o tom, jak seskupit položku, najdete v tématu Postupy: Řazení a seskupení dat pomocí zobrazení v 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>

Poznámky

Vlastnost AlternationCount a připojená ItemsControl.AlternationIndex vlastnost umožňují určit vzhled pro dva nebo více střídavých GroupItem objektů. Můžete například zadat střídavé barvy pozadí pro každou třetinu GroupItem v objektu ItemsControl. Každému ItemsControl.AlternationIndex z nich GroupItem je přiřazena ItemsControlv . ItemsControl.AlternationIndex začíná na 0, přírůstky až do AlternationCount mínus 1 a pak se restartuje v 0. Pokud AlternationCount je například hodnota 3 a v objektu ItemsControlje sedm GroupItem objektů , zobrazí následující tabulka seznam ItemsControl.AlternationIndex pro každou položku.

Pozice v GroupItemItemsControl ItemsControl.AlternationIndex
1 0
2 1
3 2
4 0
5 1
6 2
7 0

Existuje několik metod, které můžete použít k určení různých vzhledů střídavých GroupItem objektů. Jednou z metod je vytvořit vazbu vlastností v objektu HeaderTemplateGroupStyle nebo ContainerStyle na ItemsControl.AlternationIndex. Potom můžete použít k AlternationConverter určení, která hodnota se má použít pro objekt GroupItem , který má určitou ItemsControl.AlternationIndex hodnotu. Triggery můžete také použít ke změně hodnoty vlastnosti v závislosti na hodnotě vlastnosti ItemsControl.AlternationIndex.

Platí pro