【问题标题】:Loading images asynchronously in windows 8 metro apps在 Windows 8 Metro 应用程序中异步加载图像
【发布时间】:2013-01-29 13:29:00
【问题描述】:

我是 Windows 8 应用开发的新手。在我的应用程序中,我需要显示带有图像和标题的GridView。我从服务器获取的图像 URL 和标题作为 XML 数据。图像从给定的 URL 下载并存储在本地目录中。现在,当下载图像时,我想通知GridView 并使用下载的图像更新特定的图像视图。我将标题和本地图像 URI 存储在 ObservableCollection 中。 GridView 的数据源绑定到此ObservableCollection,因此一旦下载了 XML 数据,我就可以通过 ObservableCollection 更新标题。但是我不知道下载后如何更新图像。

【问题讨论】:

    标签: windows-8


    【解决方案1】:

    假设您的图像保存在本地数据文件夹 (ApplicationData.Current.LocalFolder) - 您可以这样创建一个新的BitmapImage

    var imagePathInLocalDataFolder = ?
    var imageUri = new Uri("ms-appdata:///local/" + imagePathInLocalDataFolder, UriKind.Absolute);
    var bitmapImage = new BitmapImage(new Uri(imageUri));
    

    然后,您可以将 bitmapImage 变量值分配给您绑定到 Image.Source 的属性 - 您应该会看到您的图像。

    【讨论】:

    • 我已将我的 imageview 的源属性附加到本地 uri。一旦图像被下载并存储到本地文件夹中,本地 uri 就会更新。但更新不会反映在 gridview 中。
    • 我能够通过重置 gridview 来更新 gridview 即 maingridview.winControl.itemDataSource = null; maingridview.winControl.itemDataSource = 数据源;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多