0

我正在尝试调用MessageDialog处理PropertyChanged程序。第一次调用总是成功的,但是当Dialog第二次调用时,我得到一个UnauthorizedAccessException.

我试图将调用包装在 a 中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();
}

有人可以帮我解决这个问题吗?

4

1 回答 1

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;
    }
}
于 2013-03-06T16:26:19.907 回答