向DataTemplate添加计数器

时间:2018-11-19 19:16:50

标签: xaml datatemplate

我有一个ItemsItem的DataTemplate,它输出带有一些绑定控件的Grid,并且可以按预期工作。

但是,我希望Grid的第一列输出每个Grid的计数器。

例如...

<DataTemplate x:Key="myDataTemplate">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="75" />
            <ColumnDefinition Width="150" />
        </Grid.ColumnDefinitions>

        <TextBlock Text="X" /> <!-- I want a counter to go here -->
        <TextBox Grid.Column="1" Text="{Binding Path=Name}" />
    </Grid>
</DataTemplate>

我希望第一个TextBlock显示1、2、3、4等,因为DataTemplate输出新的网格。

关于最佳方法的任何想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用AlternationCount中的AlternationIndexItemsControl来实现。喜欢,

<ItemsControl ItemsSource="{Binding Items}" AlternationCount="{Binding Items.Count}">
    <ItemsControl.ItemTemplate>
        <DataTemplate x:Key="myDataTemplate">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="75" />
                    <ColumnDefinition Width="150" />
                </Grid.ColumnDefinitions>

                <TextBlock Text="{Binding Path=(ItemsControl.AlternationIndex), RelativeSource={RelativeSource TemplatedParent}}" />
                <TextBox Grid.Column="1" Text="{Binding Path=Name}" />
            </Grid>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

这将为您提供基于0的索引;您可以根据需要使用IValueConverter