Windows 8 从属性已更改的处理程序存储应用程序调用MessageDialog

Windows 8 从属性已更改的处理程序存储应用程序调用MessageDialog,windows-8,windows-store-apps,unauthorizedaccessexcepti,messagedialog,Windows 8,Windows Store Apps,Unauthorizedaccessexcepti,Messagedialog,我正试图从PropertyChanged处理程序中调用MessageDialog。第一次调用总是成功的,但是当第二次调用对话框时,我得到一个UnauthorizedAccessException 我尝试将调用包装在调度程序中,但得到了相同的行为 下面是代码(MainPage.xaml.cs的片段): 有人能帮我解决这个问题吗?我想您的问题是多个属性更改会导致多个调用显示该对话框。一次只能显示一个对话框: bool _isShown = false; async void showMessage(

我正试图从
PropertyChanged
处理程序中调用
MessageDialog
。第一次调用总是成功的,但是当第二次调用
对话框
时,我得到一个
UnauthorizedAccessException

我尝试将调用包装在
调度程序中,但得到了相同的行为

下面是代码(MainPage.xaml.cs
的片段):


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

我想您的问题是多个属性更改会导致多个调用显示该对话框。一次只能显示一个对话框:

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;
    }
}

这看起来和感谢你的回答一样,带有它起作用的标志。我还有一个问题,我在同一个对象上获得了两个PropertyChanged侦听器,因此在第二次尝试时,该对话框被触发了两次。
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;
    }
}