2009-07-06 10 views
1

Ich habe die Antwort here durchgeführt. Ich konnte eine Liste von automatisch generierten Hyperlink-Buttons in einer ListBox erstellen. Das Ziel ist, dass, wenn ein anderer Benutzer in die Box getippt und auf die Schaltfläche geklickt wird, alte Künstler entfernt werden (vorausgesetzt, es handelt sich um einen gültigen Benutzernamen) und durch die Künstler des neuen last.fm-Benutzers ersetzt werden. Allerdings funktioniert diese Zeile jetzt nicht:Automatisch entfernen Hyperlink Buttons aus ListBox

ArtistsList.Items.Clear(); 

Ist dies nur für Text? Wenn ja, weiß jemand einen anderen Weg, um die Hyperlink-Schaltflächen zu entfernen, sobald das Go! Taste wurde erneut angeklickt? Ich werde liefern, was ich glaube, der passende page.xaml.cs Code zu sein, wenn das hilft. Diese

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

ist, was der Hyperlink sieht aus wie in dem Page.xaml Code:

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

Ich glaube, das ist all erforderlichen Code, um die Frage zu beantworten. Wenn nicht, kann ich mehr bieten.

+0

Was meinen Sie mit "es funktioniert nicht"? Ausnahme? Schweigsam ignoriert? In welcher Weise fügen Sie die Elemente zur Liste hinzu? – flq

Antwort

2

anstelle von ArtistsList.Items.Clear(); versuchen Sie einfach ArtistsList.ItemsSource = null; ArtistsList.ItemsSource = [newlistsource]. Wenn Sie nicht verstehen, antworten Sie bitte

0

mrsaif ist richtig, die Liste ist gebunden, also sollten Sie nicht versuchen, es manuell zu löschen, in SL3 wird es einen Fehler versuchen, dies zu tun, Null auf die itemsource wird entfernen der Inhalt der Liste.

Verwandte Themen