逐个显示ListBox项目(Windows Phone)

时间:2017-01-06 04:57:07

标签: c# listbox windows-phone-8.1 windows-phone-silverlight

我的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)
     {
          // ??????
     }
}

如何实现这样的功能?

1 个答案:

答案 0 :(得分:1)

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

假设您用于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调用进行初始化在构造函数中。