HierarchicalDataTemplate.AlternationCount プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
子項目の代替項目コンテナーの数を取得または設定します。
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
プロパティ値
項目の次のレベルに対する代替項目コンテナーの数。
例
次の例では、 TreeView 3 つのレベルの深いデータにバインドされた を作成し、各項目を に TextBlock表示します。 最初のレベルのオブジェクトは TextBlock 同じプロパティ値を持ち、2 番目の TextBlock レベルのオブジェクトは プロパティに交互の値を FontStyle 使用し TextBlock 、3 番目のレベルのオブジェクトは プロパティに交互の値を Background 使用します。
HierarchicalDataTemplate最初のレベルLevel1Data
の は プロパティを AlternationCount 2 に設定しているため、ItemsControl.AlternationIndexTreeViewItem 2 番目のレベルの オブジェクトの は 0 から 1 の間で交互に使用されます。
HierarchicalDataTemplate 2 番目のレベルLevel2Data
FontStyleの では、 の TextBlock が にItemsControl.AlternationIndexバインドされAlternationConverter、 が交互FontStyleに に変換ItemsControl.AlternationIndexするために が提供されます。 と の間 Level2Data
にも同様のリレーションシップが存在します Level3Data
。 AlternationCount は で Level2Data
3 に設定され、 TextBlock の Level3Ddata
プロパティは Background に ItemsControl.AlternationIndexバインドされています。
<StackPanel>
<StackPanel.Resources>
<!--Returns alternating brushes.-->
<AlternationConverter x:Key="TeamsBackgroundConverter">
<SolidColorBrush>LimeGreen</SolidColorBrush>
<SolidColorBrush>SpringGreen</SolidColorBrush>
<SolidColorBrush>Chartreuse</SolidColorBrush>
</AlternationConverter>
<!--The DataTemplate used by TreeViewItems in the third level
of the TreeView.-->
<DataTemplate x:Key="Level3Data">
<TextBlock Text="{Binding Path=Name}"
Background="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type TreeViewItem}},
Path=(ItemsControl.AlternationIndex),
Converter={StaticResource TeamsBackgroundConverter}}"/>
</DataTemplate>
<!--Returns altnernating FontStyles.-->
<AlternationConverter x:Key="LeagueFontStyleConverter">
<FontStyle >Italic</FontStyle>
<FontStyle >Normal</FontStyle>
</AlternationConverter>
<!--The HierarchicalDataTemplate used by TreeViewItems
in the second level of the TreeView.-->
<HierarchicalDataTemplate x:Key="Level2Data"
ItemsSource="{Binding Path=Teams}"
ItemTemplate="{StaticResource Level3Data}"
AlternationCount="3">
<TextBlock Text="{Binding Path=Name}"
FontStyle="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type TreeViewItem}},
Path=(ItemsControl.AlternationIndex),
Converter={StaticResource LeagueFontStyleConverter}}"/>
</HierarchicalDataTemplate>
<!--The HierarchicalDataTemplate used by TreeViewItems
in the first level of the TreeView.-->
<HierarchicalDataTemplate x:Key="Level1Data"
ItemsSource="{Binding Path=Divisions}"
ItemTemplate="{StaticResource Level2Data}"
AlternationCount="2">
<TextBlock Text="{Binding Path=Name}" FontWeight="Bold"/>
</HierarchicalDataTemplate>
<Style TargetType="TreeViewItem">
<Setter Property="IsExpanded" Value="True"/>
</Style>
</StackPanel.Resources>
<TreeView ItemsSource="{Binding Source={StaticResource MyTreeViewData}}"
ItemTemplate="{StaticResource Level1Data}"/>
</StackPanel>
注釈
AlternationCountプロパティと ItemsControl.AlternationIndex プロパティを使用すると、2 つ以上の交互の項目コンテナーの外観を指定できます。 たとえば、 の 3 つ目の項目ごとに背景色を交互に ItemsControl指定できます。 ItemsControl.AlternationIndexは、 内の各項目コンテナーにItemsControl割り当てられます。 ItemsControl.AlternationIndex は 0 から始まり、マイナス 1 になるまで AlternationCount 増分し、0 で再起動します。 たとえば、 が 3 で、 に ItemsControl7 つの項目がある場合AlternationCountは、次の表に各項目の の一覧をItemsControl.AlternationIndex示します。
内の項目の位置 ItemsControl | ItemsControl.AlternationIndex |
---|---|
1 | 0 |
2 | 1 |
3 | 2 |
4 | 0 |
5 | 1 |
6 | 2 |
7 | 0 |
プロパティをAlternationCount設定すると、子項目は、このHierarchicalDataTemplateプロパティに適用されている項目ではなく、その範囲内の を取得ItemsControl.AlternationIndexする必要があることを示します。 たとえば、呼び出された aHeaderedItemsControl
が HeaderedItemsControl セットと共に をHierarchicalDataTemplateAlternationCount使用する場合、 の子項目aHeaderedItemsControl
の項目コンテナーには、 のaHeaderedItemsControl
項目コンテナーではなく、 が含ItemsControl.AlternationIndexまれます。
交互の項目コンテナーに異なる外観を指定するために使用できる方法はいくつかあります。 1 つの方法は、items コンテナーのプロパティを にバインドすることです ItemsControl.AlternationIndex。 その後、 を AlternationConverter 使用して、特定 ItemsControl.AlternationIndex の値を持つ項目コンテナーに適用する値を指定できます。 トリガーを使用して、 の値に応じて項目コンテナーのプロパティの ItemsControl.AlternationIndex値を変更することもできます。
適用対象
.NET