繁体   English   中英

如何将目录中的文件夹名称加载到可观察的集合?

[英]how to load folders names in a directory to an observable collection?

我正在开发一个将包含图像的Zip文件提取到应用程序本地文件夹并称为主题的应用程序。

我的应用程序中有一个ObservableCollection。 在MainPage中,我有以下代码:

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"))));

createdTheme.Name是文件夹的名称(无路径)

如何通过按一下按钮将“主题文件夹”中的所有文件夹加载到observablecollection中?

您需要使用QueryOptions ,这将使您可以查询文件夹中的子文件夹/文件。

首先获得对您的themeFolder的引用(就像上面所做的一样)

现在创建一个QueryOption对象,并像这样使用它:

var queryOption = new QueryOption {FolderDepth = FolderDepth.Deep};
var themeSubFolders = await themeFolder.CreateFolderQueryWithOptions(queryOption).GetFoldersAsync();

现在您有了子文件夹列表,然后可以将其添加到ObservableCollection

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM