2013-04-10 5 views
2

코드를 붙여 넣을 필요가 없습니다. 이것은 C#입니다.WinRT C# MessageDialog.ShowAsync - 무단 액세스 예외 -

기본적으로 MessageDialog Created, Show 및 UICommandInvokedHandler를 단추에서 호출해야합니다.

다른 MessageDialog.ShowAsync가 호출 될 수있는 다른 항목을 처리합니다. 그러나이 두 번째 호출은 예외없는 액세스 예외를 제공합니다.

UI 쓰레드에서 새 MessageDialog를 강제로 생성하려고하는 이벤트가 발생하는 것처럼 시도했지만 동일한 결과가 발생했습니다.

이 문제를 해결하는 방법에 대한 제안 사항이 있으십니까? 대충 말하자면, "Are you sure? Yes/No"라고 대답하는 대화 상자를 제공하려고 시도하고 있습니다. 그렇다면 실행 중입니다. 다른 대화 상자를 팝업하여 임의의 오류 정보를 제공 할 수 있습니다.

확인 코드 :

public static async void WriteMessageDialog(string message, string buttonText1, UICommandInvokedHandler handler1, string buttonText2, UICommandInvokedHandler handler2) 
    { 
     MessageDialog msgDlg = new MessageDialog(message); 
     msgDlg.Commands.Add(new UICommand(buttonText1, handler1)); 
     msgDlg.Commands.Add(new UICommand(buttonText2, handler2)); 

     // Set the default button to be enabled and default on escape key pressed 
     msgDlg.DefaultCommandIndex = 0; 
     msgDlg.CancelCommandIndex = 0; 

     // Show the window 
     await msgDlg.ShowAsync(); 
    } 

나중에 .....

// THey original Message Dialog 
RTUtilities.WriteMessageDialog(
     _resourceLoader.GetString("DetelePersonConfirm"),   
     _resourceLoader.GetString("Delete"), 
     new UICommandInvokedHandler(this.CommandDeletePersonHandler), _resourceLoader.GetString("Cancel"), 
     new UICommandInvokedHandler(this.CommandCancelHandler)); 

호출이 .....

private async void CommandDeletePersonHandler(IUICommand command) 
    { 
     MessageDialog msgDlg = new MessageDialog(_resourceLoader.GetString("DeleteIndividualError")); 
     await msgDlg.ShowAsync(); 
    } 
+0

일부 코드를 게시하면 대답을 얻을 확률이 훨씬 높습니다. 그렇지 않으면 사람이 많이 추측해야합니다. –

+0

[this] (http://stackoverflow.com/questions/14488587/how-to-allow-for-multiple-popups-at-once-in-winrt)을 확인 했습니까? 그걸 찾으면 나에게 알려줘. – Xyroid

답변

3

음, 문제의 핵심은 당신입니다 메시지 다이알 로그 (MessageDialog)를 불러 오려고하는 중이다.

좀 더 세련된 방법이 있지만, ShowAsync의 리턴을 사용하여 선택한 명령을 식별 한 다음 명시 적으로 핸들러를 호출하면 첫 번째 팝업이 두 번째 나타나기 전에 해제됩니다. 이 목적에 대한 빠른 테스트는 효과가 있음을 나타냅니다.

관련 문제