0

このレイアウト (スクリーンショットItemsControl) では、オブジェクト内で複数の子オブジェクトを使用しItemsControlてデータをレイアウトしています。と を交互に切り替えるには、これらのサブエントリのメインの背景が必要LightGrayですWhite。を使用してAlternationCountいますが、ご覧のとおり、サブエントリの別のレベルに入ると、交互インデックスが正しくありません。( sub に AlternationCount を設定したので、これは予想されることだと思いますItemsControl)

各項目エントリの交互インデックスにその上の項目を考慮させる方法はありますか?

4

1 に答える 1

0

a を使用して親のRelativeSource Bindingを取得できると思います。私はあなたの XAML を持っていないので、あなたが何をしているのかを正確に知ることは困難です。AlternationIndexItemsControl

<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 に答える