我正在我的一个sessionstateaware页面上显示一个内容对话框,我关闭了对话框,可以在同一页面上重新打开另一个我想要的次数。当我离开并返回并尝试重新打开我的对话框时,它会出现这个错误:
WinRT信息:任何时候都只能打开一个ContentDialog。 附加信息:未正确启动异步操作。
我尝试了很多东西,但似乎每当我离开并返回时,某种程度上对控件的引用会丢失而另一个会被创建?
以下是问题区域的一小部分:
if(asyncCommand != null)
asyncCommand.Cancel();
var result = new ContentDialogResult();
if (CanOpenNewDialog)
{
CanOpenNewDialog = false;
MyContentDialog.Title = "Homebuyer Options - " + apt.Customer1FullName;
asyncCommand = MyContentDialog.ShowAsync();
result = await asyncCommand.AsTask();
}
答案 0 :(得分:0)
在导航多次时遇到与ContentDialouge相同的问题。应用程序只是崩溃说"异步操作没有正确启动。任何时候都只能打开一个ContentDialog。"
答案 1 :(得分:0)
我得到了一个解决方案。例如,应该等待ContentDialog调用的方法Show Dialouge。因此,将Show Dialouge方法作为一项任务。
protected async override void OnNavigatedTo(NavigationEventArgs e)
{
await ShowDialouge();
}
private async Task ShowDialouge()
{
ContentDialog dialouge = new ContentDialog();
await dialouge.ShowAsync();
}
答案 2 :(得分:0)
The problem was when I was navigating using prism, every time I came back to my page I resubscribed to my event that was creating a dialog. To fix this I simply call unsubscribe OnNavigatedFrom.