2017-01-06 6 views
0

私のWindows Phoneアプリケーションには、ListBox、表示ButtonTextBlockがあります。リストボックス項目を1つずつ表示(Windows Phone)

ユーザーが表示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) 
    { 
      // ?????? 
    } 
} 

+0

ちょっと!現在は表示されていないが、動作しない回答が1つあります。 int currentListIndex = 0; if(FavoriteListBox.Items.Count <=現在のリストインデックス) { DisplayTextBlock.Text = FavoriteListBox.Items [currentListIndex ++]。ToString(); } else { currentListIndex = 0; DisplayTextBlock.Text = FavoriteListBox.Items [0] .ToString(); } –

答えて

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

あなたはFavoriteListBoxnullであるかどうかを確認する必要はありません、このような状況がするので、決して起こらない - すべてのコントロールは、コンストラクタのInitializeComponentコールで初期化されます。

+0

うわー!あなたの答えは常に働く............. :) –

+0

助けてくれて嬉しいです:-) –

+0

あなたのメモもとても役に立ちますありがとう;) –

関連する問題