GroupStyle.AlternationCount プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
代替 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
プロパティ値
代替 GroupItem オブジェクトの数。
例
次の例では、コレクション内の ListBox 項目をグループにする に CollectionViewSource バインドされた を作成します。 この例では、次の手順を実行して、2 つの色のヘッダーの GroupItem 背景を切り替える。
2 に設定 AlternationCount します。
のAlternationConverter値ItemsControl.AlternationIndexに応じて、 をSolidColorBrush返す を作成します。
内HeaderTemplateの の を TextBlockBackground プロパティにItemsControl.AlternationIndexバインドし、 を提供しますAlternationConverter。 AlternationIndex添付プロパティは にGroupItem設定され、バインディングでは を使用FindAncestorしてその値が取得されることに注意してください。
この例では、 に を設定AlternationCountListBoxし、それぞれの ListBox の を にバインドBackgroundすることで、 の項目ListBoxの背景を 3 つの色の間で切りItemsControl.AlternationIndex替えます。 この場合、背景は 3 つの色で交互に表示されます。
CollectionViewSource項目をグループにする は表示されません。 項目をグループ化する方法については、「 方法: 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>
注釈
AlternationCountプロパティと添付プロパティをItemsControl.AlternationIndex使用すると、2 つ以上の交互GroupItemのオブジェクトの外観を指定できます。 たとえば、 の 3 分 GroupItem の 1 ごとに背景色を交互に ItemsControl指定できます。 は ItemsControl.AlternationIndex の各 GroupItemItemsControlに割り当てられます。 ItemsControl.AlternationIndex は 0 から始まり、マイナス 1 になるまで AlternationCount 増分し、0 で再起動します。 たとえば、 が 3 で、 に ItemsControl7 つのGroupItemオブジェクトがある場合AlternationCountは、次の表に各項目の の一覧をItemsControl.AlternationIndex示します。
内の の GroupItem 位置 ItemsControl | ItemsControl.AlternationIndex |
---|---|
1 | 0 |
2 | 1 |
3 | 2 |
4 | 0 |
5 | 1 |
6 | 2 |
7 | 0 |
交互 GroupItem のオブジェクトに異なる外観を指定するために使用できる方法はいくつかあります。 1 つの方法は、 または のプロパティを HeaderTemplateGroupStyle にバインドすることですItemsControl.AlternationIndex。ContainerStyle その後、 をAlternationConverter使用して、特定ItemsControl.AlternationIndexの値を持つ にGroupItem適用する値を指定できます。 トリガーを使用して、その の値に応じてプロパティの ItemsControl.AlternationIndex値を変更することもできます。
適用対象
.NET