2009-07-06 10 views
1

J'ai travaillé à travers la réponse fournie here. J'ai été capable de créer une liste de boutons Hyperlink générés automatiquement dans un ListBox. Le but est que, lorsqu'un utilisateur différent est tapé dans la boîte et que le bouton est cliqué, les anciens artistes sont supprimés (en supposant que c'est un nom d'utilisateur valide) et remplacés par les artistes du nouvel utilisateur de last.fm. Cependant, maintenant cette ligne ne fonctionne pas:Supprimer automatiquement les boutons de lien hypertexte de ListBox

ArtistsList.Items.Clear(); 

Est-ce que c'est uniquement pour le texte? Si oui, quelqu'un sait-il un autre moyen de supprimer les boutons de lien hypertexte une fois le Go! le bouton a été cliqué à nouveau? Je fournirai ce que je crois être le code pertinent de page.xaml.cs si cela peut aider.

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

C'est ce que le HyperlinkButton ressemble dans le code 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> 

Je crois que cela est tout le code nécessaire pour répondre à la question. Sinon, je peux en fournir plus.

+0

Que voulez-vous dire par "ça ne marche pas"? Exception? Silencieusement ignoré? De quelle manière ajoutez-vous les éléments à la liste? – flq

Répondre

2

au lieu d'utiliser ArtistsList.Items.Clear(); juste essayer ArtistsList.ItemsSource = null; ArtistsList.ItemsSource = [sourcenouvelle source]. Si vous ne comprenez pas s'il vous plaît répondre

0

mrsaif est correct, la liste est liée de sorte que vous ne devriez pas essayer de l'effacer manuellement, dans SL3 il va lancer une erreur en essayant de le faire, en plaçant null sur la source d'éléments va supprimer le contenu de la liste.

Questions connexes