Windows电话页面初始化使用异步方法错误

时间:2014-03-11 11:39:46

标签: c# windows-phone-8 async-await

我有Windows手机页面,使用异步从网址获取数据。在我的页面类consructor中,我无法调用异步方法。如何在构造函数中从web url repsonse初始化属性。

public MyProfile()
{
    InitializeComponent();

    _populateFields();
}

private async void _populateFields()
{
    try
    {
        var taskObj = await UserProfile.getUserProfile().getUserProfileFromServer();
        //PoolCircle.UserProfile.ProfileResponseJson userObj = taskObj;
        setDataContext(taskObj);
    }
    catch (Exception ex) { Debug.WriteLine(ex.Message); }
}

如何修复此依赖项?我不确定工厂方法如何修复它。我不是为页面类创建对象..

2 个答案:

答案 0 :(得分:-1)

从OnNavigatedTo方法尝试。覆盖它。它是一种可以在页面出现之前放置所有逻辑的方法

protected async override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
    base.OnNavigatedTo(e);
    _populateFields();
}

Documentation

希望有所帮助!问候!

答案 1 :(得分:-1)

制作PostData();之类的方法,并在InitializeComponent();

之后调用此方法
private async void PostData()
{
    try
    {
        var taskObj = await UserProfile.getUserProfile().getUserProfileFromServer();
        //PoolCircle.UserProfile.ProfileResponseJson userObj = taskObj;
        setDataContext(taskObj);
    }
    catch (Exception ex) { Debug.WriteLine(ex.Message); }
}