C# 如何使用存储在PicturesLibrary中的图像为GridApp模板创建SampleDataSource?

C# 如何使用存储在PicturesLibrary中的图像为GridApp模板创建SampleDataSource?,c#,windows-8,C#,Windows 8,我正在尝试为GridApp创建数据源。我使用GetFileAsync()从PicturesLibrary获取图像。我修改了SampleDataSource.cs:在数据结构中,我使用StorageFile imagePath而不是string imagePath。当然,我编写了一段代码,使用irandomaccesstream从StorageFile创建BitmapImage,而不是从Uri创建BitmapImage 所以这段代码可以编译,但不起作用。原因如下: 异步方法getFileAsync

我正在尝试为GridApp创建数据源。我使用GetFileAsync()从PicturesLibrary获取图像。我修改了SampleDataSource.cs:在数据结构中,我使用StorageFile imagePath而不是string imagePath。当然,我编写了一段代码,使用irandomaccesstream从StorageFile创建BitmapImage,而不是从Uri创建BitmapImage

所以这段代码可以编译,但不起作用。原因如下: 异步方法getFileAsync()不阻止主线程。而GroupedItemsPage.xaml.cs会在getfileasync()提供必要信息之前询问SampleDataSource。这会导致异常TypeInitializationException

显而易见的解决方案是使用GetFileAsync()的同步模拟。但也有一些新问题:

  • 似乎不可能从KnownFolders.PicturesLibrary同步获取文件
  • 这完全是个坏主意,因为如果我有大量图片,那么生成GroupedItemsPage将导致严重冻结
  • 那么,我该如何解决这个问题呢?我只问解决方案的概念。我应该如何组织我的应用程序的架构