0

MessageDialog가 Windows 8 태블릿에 표시되지 않는 문제에 대해 들어 본 사람이 있습니까? 아니면 구체적으로 삼성 700t? ARM은 아니고 일반적인 인텔 프로세스를 사용합니다. 랩톱에서이 응용 프로그램을 만들었고 랩톱에서 디버깅을하면 태블릿 시뮬레이터에 표시되지만 실제 태블릿에서는 표시되지 않습니다.메시지 대화 상자가 Windows 8 태블릿에 표시되지 않음 - Caliburn.Micro/C#

Caliburn.Micro IResult 인터페이스를 사용하여보기에 messagedialog를 표시하고 있습니다.

public IEnumerable<IResult> NavExecute(String method) 
{ 
    Windows.UI.ViewManagement.ApplicationView.TryUnsnap(); 
    var conn = NetworkInformation.GetInternetConnectionProfile(); 
    if (conn.GetNetworkConnectivityLevel() != NetworkConnectivityLevel.InternetAccess) 
    { 
     yield return new MessageDialogResult("Internet Connection Not Detected", "Connection Error"); 
     netOn = false; 

    } 

} 위 내보기 모델의 기본 클래스에 있고, IResult 클래스 자체를 heres 구현 :

public class MessageDialogResult : ResultBase 
{ 
    private readonly string _content; 
    private readonly string _title; 

    public MessageDialogResult(string content, string title) 
    { 
     _content = content; 
     _title = title; 
    } 

    public async override void Execute(ActionExecutionContext context) 
    { 
     var dialog = new MessageDialog(_content, _title); 

     await dialog.ShowAsync(); 

     OnCompleted(); 
    } 
} 

을 내가 사용하고 코드의

을 Heres의 snippits 두 디바이스 모두에서 x86 모드로 디버깅을하고 있기 때문에이 코드는 문제가되지 않을 것입니다. 모든 arhitecture에 대해 별도의 패키지가 필요한 SQLite를 사용하고 있기 때문에 모든 디바이스에서 디버깅을하지 않는 이유는 묻지 않습니다.)

Windows 8의 어딘가에서 앱 팝업을 사용할 수 없도록 설정했는지는 확실하지 않지만 찾을 수는 없습니다.

아이디어가 있으십니까?

+0

시도해 볼 수있는 다른 RT 태블릿이 있습니까? 코드는 괜찮아 보이지만'ShowAsync' 중에는 계속 던져 질 수 있습니까? 이것은 coroutine을 중단시킬 것입니다 (더 이상 예외를 던지지는 않을 것입니다, 그냥 결과 콜백에 넣습니다). – Charleh

답변

1

Coroutine.Execute의 콜백을 처리하고 있습니까?

Execute에 콜백 코 루틴에 의해 던져진 예외로 다시 호출 할 수 있습니다 - 당신이 명시 적으로 아마 비동기가 던지고 기다리고 있습니다 콜백

Coroutine.Execute(YourEnumerator(), new ActionExecutionContext { Blah }, (o, e) => { 
    if(e.Error != null) // Something went wrong 
}); 

에서 찾고되지 않은 경우이 자동으로 실패 또는 그런 일이 (이유를 생각할 수 없다!)

편집 :

이 당신의 열거에

아 추가로 물건도 던질 수 :

,536,
Windows.UI.ViewManagement.ApplicationView.TryUnsnap(); 
var conn = NetworkInformation.GetInternetConnectionProfile(); 

외부 열거 형을 콜백에서 처리하지 않으면 예외를 삼켜 버릴 수도 있고 conn에서 널 참조가 될 수도 있습니다.

+0

이 여러분의 권리처럼 보이고 GetInternetConnectionProfile() 호출을 좋아하지 않습니다. 기기가 인터넷에 연결되어 있지 않은 경우 실행시 동일한 확인이 이루어지며 충돌이 발생합니다. 그것은 마치 GetInternetConnectionProfile() 메서드 안의 어딘가에 충돌하는 것 같습니다. 디버깅은이 태블릿에서 ** 화면이 너무 작아서 고통 스럽습니다. 태블릿의 하드웨어 문제 일 수 있습니다. 노트북과 동일한 OS를 실행하고 있기 때문입니다. –

+0

높은 5 시간? (그리고 upvote?) 슬픈 표정이 뒤 따른다. ( – Charleh

+0

appnaml.cs에서 실패 할 때 나는 ennumerator와 관련하여 문제가 있다고 생각하지 않는다. 나는 ennumerator 나 심지어 messagedialog를 사용하지 않기 때문에 . 확실히 장치에서 네트워크 정보를 얻는 것과 관련이 있습니다. 올바른 방향으로 나를 안내해 주셔서 감사합니다! –

1

GetInternetConnectionProfile()이 null 참조를 반환 한 이유는 랩톱에서 무선 연결을 끊으면 랩톱의 인터넷 연결 프로필이 이더넷으로 기본 설정되는 반면 타블렛 (적어도 삼성 700T)에는 이더넷 포트가 없으므로 무선 연결이 설정되지 않은 경우 연결 프로필이 존재하지 않습니다.

올바른 방향으로 나를 가리키는 Charleh에게 감사드립니다.

관련 문제