为什么AlternationIndex为ItemsControl中的所有项返回0?

时间:2013-02-22 09:40:22

标签: c# wpf datatemplate itemscontrol

我搜索某种方式来显示使用ItemsControl的{​​{1}}中的项目索引。所以我发现this好问题。我在那个问题中使用了这个想法,但所有的值都是零!我的代码和该问题中的代码之间唯一不同的是我的控件(即将显示索引)不直接在DataTemplate中。它位于DataTemplateGrid位于Grid

这是我的代码:

DataTemplate

结果:

<ItemsControl ItemsSource="{Binding }">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Grid>
                // column definitions
                <Label Content="{Binding RelativeSource={RelativeSource
                       Mode=TemplatedParent}, 
                       Path=(ItemsControl.AlternationIndex)}"/>
                // some other controls
            </Grid>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

我希望展示的内容:

0
0
0
// and so on

这段代码有什么问题?

1 个答案:

答案 0 :(得分:10)

需要设置属性的AlternationCount属性。

<ItemsControl ItemsSource="{Binding }" AlterationCount={Binding CountOfItems}">
<ItemsControl.ItemTemplate>
    <DataTemplate>
        <Grid>
            // column definitions
            <Label Content="{Binding RelativeSource={RelativeSource
                   Mode=TemplatedParent}, 
                   Path=(ItemsControl.AlternationIndex)}"/>
            // some other controls
        </Grid>
    </DataTemplate>
</ItemsControl.ItemTemplate>