【发布时间】:2021-11-27 00:16:29
【问题描述】:
我正在使用 FileInformationFactory.GetVirtualizedFoldersVector 方法来填充 ListView 控件。 GetVirtualizedFoldersVector 返回 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 等虚拟化位置的路径为空 ("")
【问题讨论】:
标签: c# uwp casting windows-runtime