- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
当我的 Windows 应用商店应用程序启动时,我想提示用户使用 FolderPicker
选择本地存储文件夹并使用 FutureAccessList
保存它。我使用的提示符是 MessageDialog
。
protected async override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
var messageDialog = new MessageDialog("Please pick a folder where you'd like to store your documents", "Choose storage");
messageDialog.Commands.Clear();
messageDialog.Commands.Add(new UICommand("OK", async (command) =>
{
await PickFolder();
});
await messageDialog.ShowAsync();
}
private async Task PickFolder()
{
FolderPicker folderPicker = new FolderPicker();
folderPicker.SuggestedStartLocation = PickerLocationId.Desktop;
folderPicker.FileTypeFilter.Add(".txt");
folder = await folderPicker.PickSingleFolderAsync();
// lets just ignore cancellations for now
StorageApplicationPermissions.FutureAccessList.AddOrReplace("MyFolder", folder);
}
此代码无效 - 我收到拒绝访问错误
Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
我认为使用 messageDialog.ShowAsync()
足以解决这个问题,但它似乎不起作用。有任何想法吗?
我是否必须放弃漂亮的 WinRT messageDialogs 以支持自产的东西?
最佳答案
MessageDialog 的命令在关闭之前触发,并且当第一个模式对话框仍在运行时您无法打开第二个模式对话框。
您需要将对 PickFolder 的调用延迟到 MessageDialog 完成之后。由于无论如何您都在等待它,因此您可以在 ShowAsync 之后调用它。这里没有实际意义,因为 ok 是唯一的选项,但您可以打开选择的命令以在多个选项之间进行选择。
protected async override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
var messageDialog = new MessageDialog("Please pick a folder where you'd like to store your documents", "Choose storage");
messageDialog.Commands.Clear();
UICommand okCommand = new UICommand("Ok");
messageDialog.Commands.Add(okCommand);
var cmd = await messageDialog.ShowAsync();
if (cmd == okCommand)
{
await PickFolder();
}
}
另一种选择是在调用 PickFolder 之前在 UICommand 处理程序中添加延迟(例如,通过在 Dispatcher.RunAsync block 中调用 PickFolder),以便 MessageDialog 可以关闭。
关于c# - 从 UICommand/MessageDialog 启动 FilePicker 或 FolderPicker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31593106/
action method is not called 请引用这个问题 - ,我的 UICommand 组件之一是有条件地呈现,在链接问题的答案中说 - 第 5 点 - 如果该组件或其任何父级呈现或禁
在处理 JSF 自定义组件时遇到了一些困难。如果有人能让我先行一步,那就太好了。 这个想法是有一个组件可以让我翻阅 LocalDate 。考虑一个更简单的日期选择器。呈现的 HTML 有两个按钮,一个
在处理 JSF 自定义组件时遇到了一些困难。如果有人能让我先行一步,那就太好了。 这个想法是有一个组件可以让我翻阅 LocalDate 。考虑一个更简单的日期选择器。呈现的 HTML 有两个按钮,一个
当我的 Windows 应用商店应用程序启动时,我想提示用户使用 FolderPicker 选择本地存储文件夹并使用 FutureAccessList 保存它。我使用的提示符是 MessageDial
我是一名优秀的程序员,十分优秀!