Windows手机页面初始化使用async方法错误

本文关键字:async 方法 错误 初始化 手机 Windows | 更新日期: 2023-09-27 17:49:24

我有Windows手机页面,从web url使用异步获取数据。在我的页面类构造函数中,我不能调用异步方法。如何在构造函数中从web url响应初始化属性?

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

如何修复这个依赖?我不确定工厂方法如何修复它。我没有为页面类创建对象。

Windows手机页面初始化使用async方法错误

从OnNavigatedTo方法中尝试。覆盖它。这是一个方法,你可以把你所有的逻辑在页面出现之前

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

文档

希望帮助!问候!

创建一个类似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); }
}