我正在为 Windows Phone (c#) 制作音乐播放器。我决定使用 Pivot-Pages 启动应用程序。其中之一是专辑列表,列表左侧有专辑封面。我创建了一个具有以下属性的类:
BitmapImage artwork;
Album alb;
我为绑定制作了一个viewmodelclass:
ObservableCollection<ViewModelHelper.AlbumHelper> albums = new ObservableCollection<ViewModelHelper.AlbumHelper>();
public ObservableCollection<ViewModelHelper.AlbumHelper> Albums
{
get { return albums; }
}
public AlbenViewModel()
{
LoadAlbums();
}
public void LoadAlbums()
{
using (MediaLibrary mediaLib = new MediaLibrary())
{
BitmapImage bmp = new BitmapImage();
foreach (Album alb in mediaLib.Albums)
{
if (alb.HasArt == true)
{
bmp.SetSource(alb.GetAlbumArt());
albums.Add(new ViewModelHelper.AlbumHelper(bmp, alb));
}
else
{
bmp.UriSource = new Uri("/Gesture-Music-Player;component/Images/noArtwork.png", UriKind.Relative);
albums.Add(new ViewModelHelper.AlbumHelper(bmp, alb));
}
}
}
}
当我执行此操作时,专辑艺术都是一样的(这是我收藏中最后一张专辑的专辑艺术)。如果我删除 if 条件,专辑艺术就是来自 UriSource 的所有图像,它应该是怎样的。
我不明白为什么最后一张图片设置为所有相册。