自动从ListBox中删除超链接按钮

时间:2009-07-06 13:53:40

标签: c# silverlight xaml

我已经完成了here提供的答案。我已经能够在ListBox中创建自动生成的超链接按钮列表。目标是,当在框中键入不同的用户并单击按钮时,将删除旧的艺术家(假设它是有效的用户名)并替换为新的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));
            }

这就是page.xaml代码中的HyperlinkBut​​ton:

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

我相信这是回答这个问题的所有必要代码。如果没有,我可以提供更多。

2 个答案:

答案 0 :(得分:2)

而不是使用ArtistsList.Items.Clear(); 试一试 ArtistsList.ItemsSource = NULL; ArtistsList.ItemsSource = [newlistsource]。 如果您不明白,请回复

答案 1 :(得分:0)

mrsaif是正确的,列表绑定所以你不应该尝试手动清除它,在SL3中它会抛出一个错误试图这样做,在itemsource上放置null将删除列表的内容。