我正在尝试从MessageDialog
处理程序中调用PropertyChanged
。第一次通话总是成功的,但是第二次调用Dialog
时,我会得到UnauthorizedAccessException
。
我试图将呼叫包裹在Dispatcher
中,但我也有同样的行为。
以下是代码(MainPage.xaml.cs
的代码段):
void PropertyChanged(object sender, PropertyChangedEventArgs e)
{
await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
{
showMessage("Message", "Title");
});
}
async void showMessage(String message, String title)
{
MessageDialog dialog = new MessageDialog(message, title);
await dialog.ShowAsync();
}
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
我认为您的问题是多个属性更改将导致多次调用以显示对话框。您应该一次只显示一个对话框:
bool _isShown = false;
async void showMessage(String message, String title)
{
if (_isShown == false)
{
_isShown = true;
MessageDialog dialog = new MessageDialog(message, title);
await dialog.ShowAsync();
_isShown = false;
}
}