我有一个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输出新的网格。
关于最佳方法的任何想法吗?
谢谢!
答案 0 :(得分:0)
您可以使用AlternationCount
中的AlternationIndex
和ItemsControl
来实现。喜欢,
<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
。