等待活动完成

时间:2013-04-30 05:34:13

标签: windows-phone-7.1 windows-phone pivotitem

在Pivot控件中,所有Pivot项目内容在WindowsPhone 7.1中一次加载我正在开发跨平台应用程序。

问题: 在我的应用程序中,每个Pivot项都有WebBrowser控件。在java script calls are conflicted时加载所有数据透视表项目的内容时。

要求: 如果Pivot Control有4个Pivot项,如item1,item2,item3和item4,那么load item2 after the content of item1 load finished

编辑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问题:等待屏幕仅显示无法看到设计页面。

1 个答案:

答案 0 :(得分:0)

我使用以下代码“等待完成事件”

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