一个接一个地显示列表框项目 (Windows Phone)

Show ListBox Items One By One (Windows Phone)

我的 Windows Phone 应用程序中有一个 ListBox、一个节目 Button 和一个 TextBlock

每当用户点击显示 Button 时,ListBox 中的项目 应显示在 TextBlock 中。如果用户再次点击显示 Button,则应显示下一个项目。

XAML

<ListBox x:Name="FavoriteListBox"  
         SelectionChanged="FavoriteListBox_SelectionChanged"                         
         ItemContainerStyle="{StaticResource CustomListBoxItemStyle}"
         Height="300" Width="250">
    <ListBox.ItemTemplate>
         <DataTemplate>
             <TextBlock x:Name="FavoriteListBoxTextBlock" 
                        FontSize="40" FontWeight="SemiBold"
                        Text="{Binding AnswerName}"/>
         </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

<TextBlock x:Name="DisplayTextBlock"/>

<Button x:Name="ShowButton" Click="ShowButton_Click"/>

C#

private void ShowButton_Click(object sender, EventArgs e)
{
    if(FavoriteListBox != null)
     {
          // ??????
     }
}

如何实现这样的功能?

这可以很容易地直接使用索引。

假设您用于 ListBox 项的列表称为 listobj,那么您可以使用以下内容:

private int _displayedFavoriteIndex = -1;

private void ShowButton_Click(object sender, EventArgs e)
{
    //move to the next item
    _displayedFavoriteIndex++;    
    if ( _displayedFavoriteIndex >= listobj.Count )
    {
        //we have reached the end of the list
        _displayedFavoriteIndex = 0;
    }
    //show the item
    DisplayTextBlock.Text = listobj[ _displayedFavoriteIndex ].AnswerName;
}

注意 您不必检查 FavoriteListBox 是否为 null,因为这种情况永远不会发生 - 所有控件都使用 InitializeComponent 调用构造函数。