2012-06-12 3 views
0

저는 시작과 동시에 여러 개의 HttpRequests를 만들고 있습니다. MVVM 응용 프로그램을 더 많이 사용하기 위해 UI 처리를 다른 클래스로 옮기기 전에 잘 작동했습니다. 이제 데이터가있는 페이지를로드 할 때 예외없이 응용 프로그램이 중단되거나 종료됩니다.WP7 응용 프로그램도 예외없이 종료됩니다. 데이터 바인딩?

이 종료의 주된 소스는 (필자가 생각하기에) 응용 프로그램의 RootFrame에 대한 ViewModel을 설정하여 xaml 바인딩의 클래스를 참조 할 수 있습니다.

(App.Current as App).RootFrame.DataContext = (App.Current as App).ViewModel; 

이 앱이 없으면 앱이 시작되지만 아무 데이터도 페이지에 바인딩되지 않습니다. ViewModel을 RootFrame의 데이터 컨텍스트로 설정하려고 할 때 동시에 ViewModel을 변경하는 비동기식 Http 호출이있는 것으로 추측합니다. 나는 이것이 이런 종류의 해고를 일으킬 지 확신하지 못한다. 그러나 나는 단지 추측하고있다. I로,

'UI Task' (Managed): Loaded 'mscorlib.dll' 
    'UI Task' (Managed): Loaded 'System.Windows.RuntimeHost.dll' 
    'UI Task' (Managed): Loaded 'System.dll' 
    'UI Task' (Managed): Loaded 'System.Windows.dll' 
    'UI Task' (Managed): Loaded 'System.Net.dll' 
    'UI Task' (Managed): Loaded 'System.Core.dll' 
    'UI Task' (Managed): Loaded 'System.Xml.dll' 
    'UI Task' (Managed): Loaded '\Applications\Install\CCB2E631-D1D5-4AB0-B253-7B6CF6367D16\Install\ParkQuest.dll', Symbols loaded. 
    'UI Task' (Managed): Loaded 'Microsoft.Phone.dll' 
    'UI Task' (Managed): Loaded 'Microsoft.Phone.Interop.dll' 
    'UI Task' (Managed): Loaded 'Microsoft.Xna.Framework.dll' 
    'UI Task' (Managed): Loaded '\Applications\Install\CCB2E631-D1D5-4AB0-B253-7B6CF6367D16\Install\Facebook.dll' 
    'UI Task' (Managed): Loaded '\Applications\Install\CCB2E631-D1D5-4AB0-B253-7B6CF6367D16\Install\System.Windows.Interactivity.dll' 
    'UI Task' (Managed): Loaded '\Applications\Install\CCB2E631-D1D5-4AB0-B253-7B6CF6367D16\Install\Microsoft.Expression.Interactions.dll' 
    'UI Task' (Managed): Loaded 'System.Runtime.Serialization.dll' 
    'UI Task' (Managed): Loaded '\Applications\Install\CCB2E631-D1D5-4AB0-B253-7B6CF6367D16\Install\Microsoft.Phone.Controls.Toolkit.dll' 
    The thread '<No Name>' (0x1af811be) has exited with code 0 (0x0). 
    The thread '<No Name>' (0x1ada0ebe) has exited with code 0 (0x0). 
    The thread '<No Name>' (0x1a9c105a) has exited with code 0 (0x0). 
    The program '[457643138] UI Task: Managed' has exited with code 0 (0x0). 

가 참고로 내 시작 객체가 아니라 문제 :

나는이 부분은 여기, 그 후 응용 프로그램이 바로 종료하기 때문에 오류의 원인이 무엇 인 출력 확신 일부 사람들과 함께있는 것을 보았습니다.

미리 도움을 주셔서 감사 드리며 더 좋은 방법이 있다고 생각하시면 제 데이터 바인딩을 구현해야합니다. 알려 주시기 바랍니다.

또한이 문의에 답변하는 데 도움이되는 다른 정보가 필요하면 언제든지 물어보십시오.

+1

Visual Studio에서 first- 기회 예외 상황에 대해 자세히 알아 보려면 어떤 일이 벌어지고 있는지 자세히 알아보십시오. VS에서 ctrl + alt + e를 누르고 '공용 언어 런타임 예외'앞에 'throw 된'확인란을 활성화하십시오. –

답변

1

...

은 어쩌면 당신은 몇 가지 기본적인 로깅을 구현해야합니다 (요청 시작 및 종료, ....) 상기 더 나은 모습을 얻을 수 있습니다 문제.

WebClient 및 다른 병렬 요청을 사용할 때 몇 가지 문제가 발생했습니다.이를 확인해야 할 수도 있습니다. WebClient 콜백이 UI 위협을 사용한다는 것을 알고 있기 때문에 (VM이 요청을 시작하여 일찍 초기화 될 수있는) 일찍 일어날 때도 문제가 될 수 있습니다 ...

+0

그게 단지 문제 야. WebCliet HttpRequest (WebClient를 사용하지 않는 한) 만 사용하므로 문제가 발생하지 않습니다. – methodMan

+0

WebClient는 내부에서 HttpRequest를 사용합니다 ... (알고있는 것처럼) ... 원하는 경우 코드를 보내고 그 코드를 볼 수 있습니다 ... 디버깅과 같은 문제를 찾기가 어려워요 ... –

+0

Yah, I 've 've 문제를 파악하는 동안 시간을 ​​보냈지 만 HttpRequest가 만들어지기 전에도 문제가 발생한 것처럼 보입니다. 데이터 바인딩이 원인이라는 것이 확실합니다. 내가 틀린 시간이나 뭔가 NotifyPropertyChenged 이벤트를 호출했다 믿습니다. 나는 내 코드를 돌아 다니며 무리를 지어서이 문제를 극복 한 것으로 보인다. 단지 데이터에 바인딩되지 않는다 ... 아주 슬픈 문제이다. – methodMan

0

이것이 도움이되는지는 잘 모르겠지만 일반적으로보기의 ViewModel을 설정하는 코드에서이 작업을 수행합니다. 난 당신이 어쩌면 타이밍에 약간의 문제가 있다고 생각

public MainPage() 
{ 
    InitializeComponent(); 
    MainPageVMProperty = new ViewModels.MainPageViewModel(); 
} 

public ViewModels.MainPageViewModel MainPageVMProperty { get; set; } 

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 
    LayoutRoot.DataContext = MainPageVMProperty; 
} 
+0

그래, 고마워, 이걸 시도해보고 알게 될거야 .... – methodMan

관련 문제