Я бы передал лямбду-продолжение методу, запускающему вызов веб-метода - продолжение будет выполнено после успешного завершения вызова:
private void Button1Button_Click(object sender, RoutedEventArgs e)
{
InitializeConnexion("my name", () =>
{
this.NavigationService.Navigate(new Uri("/View/profile.xaml", UriKind.Relative));
});
}
Вы можете сохранить это как Action
в MobileViewModel
классе.
Action _webCallCompletedAction;
public void InitializeConnexion(string name, Action action)
{
webCallCompletedAction = action;
_ws.InitializeConnexionAsync(name);
}
и, наконец, выполните его после того, как все ваши веб-службы будут завершены:
private void _ws_InitializeConnexionCompleted(object sender,
InitializeConnexionCompletedEventArgs e)
{
if (e.Error != null)
{
this.Member = e.Result;
webCallCompletedAction();
}
else
{
MessageBox.Show("error.");
}
}
}