如何从itemtemplate获取当前索引和itemsource计数

时间:2014-02-26 04:24:21

标签: xaml windows-store-apps

我有一个包含一些项目的ListView,每个项目都有自己的模板,我的问题是如何在itemtemplate中显示每个项目的当前索引和itemsource的数量?

我的ListView xaml:

<ListView x:Name="AddTermsListView" ItemTemplate="{StaticResource FilterDataTemplate}"                                      
                            ItemsSource="{Binding ComboBoxSet}"                                                                     
                            ItemsPanel="{StaticResource WrapItemsPanelTemplate}"
                            SelectionMode="None" Padding="0" ScrollViewer.VerticalScrollBarVisibility="Auto"                                
                            HorizontalAlignment="Left" VerticalAlignment="Top" />

我的ItemTemplate:

<DataTemplate x:Key="FilterDataTemplate">
<StackPanel Orientation="Horizontal" Background="White" Height="50" HorizontalAlignment="Left">
    <TextBox BorderBrush="#FF727272" Background="#FFD1D1D1" HorizontalAlignment="Left" Grid.Row="2" TextWrapping="Wrap" Text="{How to get Index?}"/>
    <TextBox BorderBrush="#FF727272" Background="#FFD1D1D1" HorizontalAlignment="Left" Grid.Row="2" TextWrapping="Wrap" Text="{How to display total of ComboBoxSet?}"/>
</StackPanel>
</DataTemplate>     

谢谢:)

修改

尝试通过ComboBoxSet绑定ListView中的总项目,但仍无效:

<TextBox BorderBrush="#FF727272" Background="#FFD1D1D1" HorizontalAlignment="Left" Grid.Row="2" TextWrapping="Wrap" Text="{Binding ComboBoxSet.Count}"/>

1 个答案:

答案 0 :(得分:1)

您可以通过元素绑定在模板上显示列表项目计数。

更新:尝试此代码

<ListView x:Name="AddTermsListView">              
       <ListView.ItemTemplate   >
                <DataTemplate>
                    <StackPanel Orientation="Horizontal" Width="300" Height="50">   
                        <TextBlock   Text="{Binding}"  Margin="0,0,20,0"/>                         
                        <TextBlock   Text="{Binding Items.Count, ElementName=AddTermsListView}"  />
                    </StackPanel>                      
                </DataTemplate>
       </ListView.ItemTemplate >          
</ListView >

填充集合并将其设置为列表的ItemSource

List<string> temperatures = new List<string>();          
// Generate 10 items
for (int num = 1; num <= 10; num++)
{
  temperatures.Add("number" + num);
}   
AddTermsListView.ItemsSource = temperatures;

请注意,“商品”不是您的商品来源收藏品名称。 It Gets the collection used to generate the content of the ItemsControl

如果您想要显示每个项目的索引,最好为您的模型类添加额外的Index property&amp;在构建列表项源时,使用项目增加它。