0

ハンドラーMessageDialogからを呼び出そうとしています。PropertyChanged最初の呼び出しは常に成功しますがDialog、2回目に呼び出されると、が取得され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();
}

誰かがこの問題で私を助けてくれますか?

4

1 に答える 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 に答える