我正在开发一个将包含图像的Zip文件提取到应用程序本地文件夹并称为主题的应用程序。
我的应用程序中有一个ObservableCollection。在主页中,我有以下代码:
public ObservableCollection<Theme> Themes = new ObservableCollection<Theme>();
在班上我有这个:
public class Theme
{
public string ThemeName { get; set; }
public BitmapImage IconImgSource { get; set; }
public DynamicWallpaper(string name, BitmapImage imgSource)
{
this.ThemeName = name;
this.IconImgSource = imgSource;
}
}
我需要做的是进入以下目录后:
StorageFolder localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
StorageFolder themeFolder = await localFolder.GetFolderAsync("Themes");
用于扫描子文件夹的名称,并将该文件夹的名称与指示该文件夹的图像一起添加到observablecollection中。
Themes.Add(new Theme(addedTheme.Name, new BitmapImage(new Uri(addedTheme.Path + "/Thumnail_Day.png"))));
addedTheme.Name是文件夹的名称(无路径)
如何通过按一下按钮将“主题文件夹”中的所有文件夹加载到可观察的集合中?
答案 0 :(得分:3)
您需要使用QueryOptions
,这将使您可以查询文件夹中的子文件夹/文件。
首先获得对您的themeFolder
的引用(就像您在上面所做的一样)
现在创建一个QueryOption
对象并像这样使用它:
var queryOption = new QueryOption {FolderDepth = FolderDepth.Deep};
var themeSubFolders = await themeFolder.CreateFolderQueryWithOptions(queryOption).GetFoldersAsync();
现在您有了子文件夹列表,然后可以将其添加到ObservableCollection