如果要绑定到 Image Source 属性,则无法绑定文件路径。您必须绑定到 BitmapImage 数据类型。如果您直接在代码中设置 Source 属性,它将如下所示:
BitmapImage bitmapImage = new BitmapImage();
await bitmapImage.SetSourceAsync(fileStream);
MyImage.Source = bitmapImage;
如果要绑定到对象列表,则对象需要具有返回 BitmapImage 数据类型的属性(简化 - 您也需要支持INotifyPropertyChanged
):
public class MyDataBoundItem
{
public BitmapImage MyBindableImage {get;set;}
}
您可以使用如下代码枚举图片文件夹中的文件...
var picFolder = Windows.Storage.KnownFolders.PicturesLibrary;
var options = new QueryOptions(CommonFileQuery.DefaultQuery,new List<string> { ".png", ".jpg" }) ;
options.FolderDepth = FolderDepth.Deep;
var query = picFolder.CreateFileQueryWithOptions(options);
var files = await query.GetFilesAsync();
诀窍是,这取决于您要如何加载数据,是从文件中获取相应的文件到每个数据绑定对象中,以便它可以提供 BitmapImage 属性。这是因为 SetSourceAsync 调用是异步的,所以您需要支持 INotifyPropertyChanged 以便绑定对象可以在图像可用时通知 UI。不难,只是不直观。