0

Windows Phone アプリケーションに、ListBoxShow Button、および があります。TextBlock

ユーザーが Show をクリックすると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)
     {
          // ??????
     }
}

どうすればそのような機能を実現できますか?

4

1 に答える 1

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;
}

FavoriteListBoxisかどうかを確認する必要がないことに注意nullしてください。そのような状況は決して起こらないためです。すべてのコントロールはInitializeComponentコンストラクターの呼び出しで初期化されます。

于 2017-01-06T05:44:25.543 に答える