使用应用包文件夹中的数据模板将图像绑定到列表框

本文关键字:图像 绑定 列表 数据 应用 文件夹 | 更新日期: 2023-09-27 18:31:05

嗨,我需要将图像绑定到列表框,但是当我尝试时,我找不到文件,但文件存储在文件夹布局图形的应用程序包中。我尝试将文件放入默认文件夹,但我得到的结果相同,有人知道什么是不好的吗?

var file = await Windows.Storage.ApplicationData.Current.LocalFolder.GetFileAsync("ms-appx:///layoutGraphics/offline.png");
        var fileStream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
        var img = new BitmapImage();
        img.SetSource(fileStream);
        ImgSource = img;

//财产

private BitmapImage _imgSource;
    public BitmapImage ImgSource
    {
        get { return _imgSource; }
        set
        {
            _imgSource = value;
            OnPropertyChanged("MyDatasMessagesUserList");
        }
    }

或者有人知道更好的解决方案如何使用数据模板将应用程序文件夹中的图像绑定到我的列表框?

使用应用包文件夹中的数据模板将图像绑定到列表框

Windows.Storage.ApplicationData.Current.LocalFolder 正在从应用程序存储而不是包中检索文件。对于包文件夹,您需要使用 Windows.ApplicationModel.Package.Current.InstalledLocation。此外,GetFileAsync 只采用文件的名称,而不是完整路径。以下是完成所需内容的代码:

var layoutGraphiceFolder = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("layoutGraphics")
var file=await layoutGraphiceFolder.GetFileAsync("offline.png");

使用完整路径的另一种方法是:

var file=await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///layoutGraphics/offline.png"));