对于此布局(屏幕截图),我ItemsControl
在一个对象中使用多个子ItemsControl
对象来布局数据。我需要这些子条目的主要背景在LightGray
和之间交替White
。我正在使用AlternationCount
,但正如您所看到的,当它进入另一个级别的子条目时,交替索引是不正确的。(我想这是意料之中的,因为我已经为 sub 设置了 AlternationCount ItemsControl
)
有没有办法让每个项目条目的交替索引考虑到它上面的项目?
对于此布局(屏幕截图),我ItemsControl
在一个对象中使用多个子ItemsControl
对象来布局数据。我需要这些子条目的主要背景在LightGray
和之间交替White
。我正在使用AlternationCount
,但正如您所看到的,当它进入另一个级别的子条目时,交替索引是不正确的。(我想这是意料之中的,因为我已经为 sub 设置了 AlternationCount ItemsControl
)
有没有办法让每个项目条目的交替索引考虑到它上面的项目?
我认为您可以使用 aRelativeSource
Binding
来获取AlternationIndex
parent ItemsControl
。我没有你的 XAML,所以很难确切地知道你在做什么。
<ItemsControl
ItemsSource="{Binding Items}"
AlternationCount="2">
<ItemsControl.ItemTemplate>
<DataTemplate DataType="{x:Type vm:Item}">
<Grid>
<Grid.Style>
<Style TargetType="Grid">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ContentPresenter}}, Path=(ItemsControl.AlternationIndex)}" Value="0">
<Setter Property="Background" Value="Red"/>
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ContentPresenter}}, Path=(ItemsControl.AlternationIndex)}" Value="1">
<Setter Property="Background" Value="Blue"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>