因此,我可以使用以下语法一次一个地填充ListView:
var bitmap = new BitmapImage();
await bitmap.SetSourceAsync(await file.OpenReadAsync());
PhotoListView.Items.Add(bitmap);
但是我希望我的ListView能够显示图片库中特定文件夹中的所有照片,例如Camera Roll文件夹。做与上面相同的事情,并添加允许我使用 StorageFolder 打开文件夹的代码给我一个错误:
failed to convert value of type 'Windows.Storage.StorageFile' to type 'ImageSource'
我认为它与 List<> 有关,但我不确切知道如何使用它。顺便说一句,我也可以考虑使用 FilePicker ,只要我可以查看我的应用程序中的所有图像 而不是图片库本身。这是因为我看过它的例子,它的作用是将应用程序放在后台并打开库来显示图像,这对我没有好处。
所以我的问题是,我该如何做到这一点?它背后的代码是什么?请帮我。谢谢!
答案 0 :(得分:0)
正如预期的那样,它必须对列表做些什么。所以我研究了很多,然后提出了这个代码:
StorageFolder appFolder = await KnownFolders.PicturesLibrary.CreateFolderAsync("appFolder", CreationCollisionOption.OpenIfExists);
StorageFolder temp = await appFolder.CreateFolderAsync("temp", CreationCollisionOption.OpenIfExists);
List<StorageFile> FileList = (await temp.GetFilesAsync()).ToList();
List<string> ImageList = new List<string>();
foreach (var imageFile in FileList)
{
ImageList.Add(imageFile.Path);
}
this.PhotoListView.DataContext = ImageList;
ListView也使用绑定,因此我的appFolder中的图像将自动添加到其中。