首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将AlbumCollection中的albumArt绑定到列表框

将AlbumCollection中的albumArt绑定到列表框
EN

Stack Overflow用户
提问于 2011-09-13 10:51:40
回答 1查看 284关注 0票数 1

如何将AlbumArt绑定到我的列表框?

我的代码:

代码语言:javascript
复制
    <ListBox Name="albumLb" Margin="0,0,-12,0" ItemsSource="{Binding Items}" SelectionChanged="albumLb_SelectionChanged">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal" Margin="0,0,0,17" >
                    <!--Replace rectangle with image-->
                    <Image Source="{Binding }"/>
                    <StackPanel Width="311">
                        <TextBlock Text="{Binding Name}" FontSize="28" />
                        <TextBlock Text="{Binding Artist}" Margin="12,-6,12,0"  Foreground="#FFE5CDCD"/>
                    </StackPanel>
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

在我的代码中,我使用了:

代码语言:javascript
复制
albumLb.ItemsSource = library.Albums;

我知道我可以通过library.Albumsint index.getAlbumArt()获得AlbumArt,但是我不知道如何将它绑定到我的列表框中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-13 11:12:49

getAlbumArt()返回什么类型?如果它只是一个文件的路径(比方说在独立存储中),那么你就必须编写一个转换器来进行绑定。此外,不使用名为getAlbumArt()的函数,而是创建一个名为AlbumArtproperty,并使用一个公共getter,这将允许绑定到它。然后,可以使用以下命令绑定图像

代码语言:javascript
复制
<Image Source="{Binding AlbumArt}" />

接下来,创建一个转换器(通过实现IValueConverter接口),它将采用独立存储中文件的路径,并将其加载到BitmapImage中,然后由转换器返回给ListBox中的Image

This question有关于如何做到这一点的详细信息。

另一方面,如果您需要从某个网站下载图像,请使用WebClient.OpenReadAsync

代码语言:javascript
复制
WebClient wc = new WebClient();
wc.OpenReadCompleted += new OpenReadCompletedEventHandler(OnImageDownloadCompleted);
wc.OpenReadAsync(new Uri("www.mywebsite.com/albumart/album1.jpg", UriKind.Relative));

void OnImageDownloadCompleted(object sender, OpenReadCompletedEventArgs e)
{
  if (e.Error == null) {
    StreamResourceInfo sri = new StreamResourceInfo(e.Result as Stream, null);
    BitmapImage imgsrc = new BitmapImage();
    imgsrc.SetSource(sri.Stream);
  }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7396311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档