我在Xamarin Forms应用程序中加载数据时遇到问题。我在MainPage()函数中调用异步函数,我想在执行后绑定数据。
public MainPage()
{
InitializeComponent();
LoadThingSpeak().ContinueWith(async (t) => await GetLocation(t.Result).ContinueWith(async (r) => await LoadForecast())).GetAwaiter();
BindingContext = bindingData;
}
但BindingContext = bindingData
在异步功能结束之前执行,并且为空。
有人能帮我吗?
尽量避免在构造函数中进行异步调用。
而是使用异步事件处理程序并在设置绑定上下文之前等待所需的功能
public partial class MainPage: ContentPage {
public MainPage() {
InitializeComponent();
Appearing += onAppearing;
}
private async void onAppearing(object sender, EventArgs args) {
try {
var thingSpeakResult = await LoadThingSpeak();
await GetLocation(thingSpeakResult);
await LoadForecast();
BindingContext = bindingData;
} catch( Exception ex) {
//handler error (Log?)
}
}
//...
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句