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。
我正在使用 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。