2009-07-06 12 views
1

回答はhereです。 ListBoxに自動的に生成されたハイパーリンクボタンのリストを作成することができました。目標は、別のユーザーがボックスに入力してボタンをクリックすると、古いアーティストが削除され(有効なユーザー名であることが前提)、新しいlast.fmユーザーのアーティストに置き換えられます。ただし、この行は機能しません。リストボックスから自動的にハイパーリンクボタンを削除する

ArtistsList.Items.Clear(); 

これはテキストのみですか?もしそうなら、誰かがハイパーリンクボタンを一度外す別の方法を知っていますか?ボタンをもう一度クリックしましたか?それが役に立つのであれば、私が関連するpage.xaml.csコードであると信じているものを提供します。

  if (uname.Text != String.Empty && uname.Text != "Try Another One!") 
      { 
       App app = (App)Application.Current; 
       app.UserName = uname.Text; 
       String getTopArtists = "http://ws.audioscrobbler.com/2.0/?method=user.gettopartists&user=" + app.UserName + "&api_key=d2d620af554a60f228faed8d502c4936"; 
       WebClient web = new WebClient(); 
       WebClient client = new WebClient(); 
       client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(DownloadStringCompleted); 
       client.DownloadStringAsync(new Uri(getTopArtists)); 
      } 

これは、HyperlinkBut​​tonはPage.xamlをコードで次のようになります。

<ListBox FontFamily="Calibri" HorizontalAlignment="Center" VerticalAlignment="Center" Width="200" Height="200" Margin="50,140,50,50" x:Name="ArtistsList" Foreground="Crimson"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <StackPanel> 
       <HyperlinkButton Content="{Binding Name}" NavigateUri="{Binding Amazon}" TargetName="_blank" Width="173.5" Foreground="Crimson"></HyperlinkButton> 
      </StackPanel> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

私はこの質問に答えるために必要なコードのすべてであると信じています。そうでない場合、私はもっと多くを提供することができます。

+0

「動作しない」とはどういう意味ですか?例外?黙って無視? どのように項目をリストに追加しますか? – flq

答えて

2

ArtistsList.Items.Clear()を使用する代わりに。 ただ試してみてください ArtistsList.ItemsSource = null; ArtistsList.ItemsSource = [newlistsource]。 あなたが理解できない場合は返信してください

0

mrsaifが正しいです、リストはバインドされていますので、手動で消去しないようにしてください。SL3では、エラーをスローします。リストの内容

関連する問題