2009-07-06 48 views
1

我已經通過提供的答案here。我已經能夠創建列表框中自動生成的超鏈接按鈕的列表。我們的目標是,當一個不同的用戶被輸入框並點擊按鈕時,他們會刪除舊的藝術家(假設它是一個有效的用戶名),並由來自新last.fm用戶的藝術家取代。但是,現在這條線不起作用:自動從列表框中刪除超鏈接按鈕

ArtistsList.Items.Clear(); 

這是僅用於文本?如果是這樣,有沒有人知道另一種方法來刪除超鏈接按鈕一旦Go!按鈕又被點擊了嗎?我將提供我認爲相關的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 2009-07-06 14:24:11

回答

2

而不是使用ArtistsList.Items.Clear(); 只需嘗試 ArtistsList.ItemsSource = null; ArtistsList.ItemsSource = [newlistsource]。 如果你不明白請回復

0

mrsaif是正確的,表綁定,所以你不應該嘗試手動清除它,在SL3它會拋出試圖做一個錯誤,在放置的ItemSource空將刪除列表的內容。