UWP - 如何在 C# 中从 FolderInformation 获取 StorageFolder?

UWP - How do I get StorageFolder from FolderInformation in C#?

我正在使用 FileInformationFactory.GetVirtualizedFoldersVector 方法来填充 ListView 控件。 GetVirtualizedFoldersVector returns IStorageItemInformation 对象的向量,在文件夹的情况下恰好是 Windows.Storage.BulkAccess.FolderInformation.

在点击项目事件处理程序中我想获取对应的StorageFolder

在 C++/WinRT 中我可以使用

void MainPage::FolderListView_ItemClick(Windows::Foundation::IInspectable const&, Windows::UI::Xaml::Controls::ItemClickEventArgs const& args)
{
    auto clickedItem = args.ClickedItem();
    if (clickedItem)
    {
        auto folder = clickedItem.try_as<StorageFolder>();
        if (folder)
        {
        // We have a StorageFolder
        }
    }
}

这很好用,但在 C# 中同样的东西不起作用!

private void FolderListView_ItemClick(object sender, ItemClickEventArgs args)
{
    var clickedItem = args.ClickedItem;
    if (clickedItem != null)
    {
        StorageFolder folder = clickedItem as StorageFolder;
        if (folder != null)
        {
           // folder is always null
        }
    }
}

我不想使用 StorageFolder.GetFolderFromPathAsync() 因为路径是空的 ("") 对于像 KnownFolders.MediaServerDevices

这样的虚拟化位置

尝试将其转换为特定接口,例如 IStorageFolder 而不是 class。