0

对于此布局(屏幕截图),我ItemsControl在一个对象中使用多个子ItemsControl对象来布局数据。我需要这些子条目的主要背景在LightGray和之间交替White。我正在使用AlternationCount,但正如您所看到的,当它进入另一个级别的子条目时,交替索引是不正确的。(我想这是意料之中的,因为我已经为 sub 设置了 AlternationCount ItemsControl

有没有办法让每个项目条目的交替索引考虑到它上面的项目?

4

1 回答 1

0

我认为您可以使用 aRelativeSource Binding来获取AlternationIndexparent 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>
于 2015-08-18T09:53:25.900 回答