2013-04-30 2 views
0

피벗 컨트롤에서 모든 피벗 항목 내용이 WindowsPhone 7.1에서 한 번에로드됩니다. 크로스 플랫폼 응용 프로그램을 개발 중입니다.이벤트 완료 대기 중

문제점 : 내 응용 프로그램의 각 피벗 항목에는 WebBrowser 컨트롤이 있습니다. 한 번에 모든 피벗 항목의 내용을로드 할 때 java script calls are conflicted.

요구 사항 : 피벗 컨트롤은 다음 load item2 after the content of item1 load finished 4 개 피벗 항목 3 항목 1, 항목 2와 같은 항목 및 item4를 갖는 경우.

편집 1 :는 다음 코드를 http://www.c-sharpcorner.com/UploadFile/1d42da/synchronization-events-and-wait-handles-in-C-Sharp/

ManualResetEvent mre = new ManualResetEvent(false); 
foreach (PivotDetails pivotdetails in pivtdetailslist) 
{     
    PivotItem pivotitem = new PivotItem(); 
    pivotitem.Header = pivotdetails.header; 
    WebBrowserControl browsercontrol = new WebBrowserControl(this); 
    browsercontrol.Navigate(pivotdetails.url); 
    pivotitem.Content = browsercontrol; 
    mre.Reset(); 
    myPivot.Items.Add(pivotitem); 
    mre.WaitOne(); 
} 

private void webBrowser_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e) 
{ 
    mre.Set(); 
} 

EDIT1 문제를 시도 : 대기 화면 만 디자인 페이지를 볼 수 없습니다 표시.

답변

0

I가 다음 코드를 사용했다

foreach (PivotDetails pivotdetails in pivtdetailslist) 
{     
    PivotItem pivotitem = new PivotItem(); 
    pivotitem.Header = pivotdetails.header; 
    WebBrowserControl browsercontrol = new WebBrowserControl(this);  
    pivotitem.Content = browsercontrol; 
    mre.Reset(); 
    myPivot.Items.Add(pivotitem); 
    mre.WaitOne(); 
} 

private void webBrowser_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e) 
{ 
    myPivot.isHitTestVisible = true; 
} 

private void myPivot_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
      Pivot pivot = sender as Pivot; 
      PivotItem currentPivot= pivot.SelectedItem as PivotItem; 
      if (currentPivot.Content is WebBrowserControl) 
      { 
       WebBrowserControl bc = currentPivot.Content as WebBrowserControl; 
       if (bc.getWebView().Source == null) 
       {      
        bc.Navigate(pivtdetailslist[pivot.SelectedIndex].url); 
        bc.getWebView().LoadCompleted += new System.Windows.Navigation.LoadCompletedEventHandler(webBrowser_LoadCompleted); 
        myPivot.IsHitTestVisible = false; 
       } 
      } 
} 
"이벤트를 완료하기 위해 대기"