未达到CallBack of Function

时间:2014-02-23 17:43:56

标签: c# .net rest windows-phone-8 hammock

我有一个MVVVM应用程序,其中包含使用Hammock的视图模型。

我在主页后面的代码中调用我的Get2函数,如下所示:

 private void List2_SelectionChanged_1(object sender, SelectionChangedEventArgs e)
    {
        if (List2.SelectedItem != null)
        {
            ((MainPageViewModel)DataContext).Get2();

            NavigationService.Navigate(new Uri("/Page3.xaml", UriKind.Relative));
        }
    }

这是我的Get2功能:

public void Get2()
{
    [...]

    restClient.BeginRequest(restRequest, Get2CallBack);
}

private void GetListStatusesCallBack(RestRequest Request, RestResponse Response, object Obj)
{ 
    [...]
}

但是在我的Get2()函数结束时发生的事情是,不是在之后到达回调函数,而是返回到我的MainPage代码后面,执行NavigationService.Navigate(new Uri("/Page3.xaml", UriKind.Relative));   ,退出List2_SelectionChanged_1,最后到达CallBack函数。

为什么我的CallBack功能在Get2()之后才到达?

我希望在导航事件之前联系到CallBack,

1 个答案:

答案 0 :(得分:0)

您的方法应该是同步通话。您描述的行为需要使用同步调用。

但是,查看代码时,调用看起来是异步(BeginRequest)。

也许如果您可以发布有关变量restClient(数据类型,预期用途等)的更多详细信息,那将会很有帮助。

或者,您可以尝试在回调方法中使用此行

NavigationService.Navigate(new Uri("/Page3.xaml", UriKind.Relative));