【发布时间】:2014-02-16 00:38:41
【问题描述】:
我有MessageDialog对话负责删除确认。
private async void ShowDialogClick(object sender, RoutedEventArgs e)
{
MessageDialog md = new MessageDialog("Are your sure you want to delete this?");
md.Commands.Add(new UICommand("Delete",
new UICommandInvokedHandler(DeleteItemHandler)));
md.Commands.Add(new UICommand("Cancel"));
await md.ShowAsync();
}
当用户点击Delete时,DeleteItemHandler调用数据库操作,但是我如何通知用户操作不成功?
我尝试创建新的 MessageDialog,但得到了win32 exception。
private async void DeleteItemHandler(IUICommand command)
{
MessageDialog md = new MessageDialog("New content");
String result = DbDeletation();
if(result != "OK")
await md.ShowAsync();
}
告知用户错误的最佳方式是什么?
【问题讨论】:
-
MessageDialog.ShowAsync() 的 MSDN 文章特别警告了这一点。一次只能激活一个对话框,当您的 DeleteItemHandler 运行时 MessageDialog 仍然处于活动状态。所以你不能在那个方法中显示另一个。考虑在对话框关闭后使用 Dispatcher.BeginInvoke() 稍后运行该代码。
标签: c# wpf xaml windows-8.1 win32exception