【发布时间】:2015-05-09 08:58:38
【问题描述】:
我目前正在使用 Xamarin Forms,我正在使用从 github RESTAPI 获得的 post 方法。每当我尝试将数据应用到我的 ListView ItemsSource 时,我的应用程序就会崩溃。
以下是当前执行的成功回调,它检索 JSON 并将其序列化并将其存储在名为 listData 的列表中。
public class Home : ContentPage
{
private ListView myListView;
private List<Person> listInfo = new List<Person> { };
RESTAPI rest = new RESTAPI();
Uri address = new Uri("http://localhost:6222/testBackEnd.aspx");
public Home ()
{
Dictionary<String, String> data = new Dictionary<String, String>();
rest.post(address, data, success, null);
Content = new StackLayout {
Children =
{
myListView
}
};
}
public void success(Stream stream)
{
DataContractJsonSerializer sr = new DataContractJsonSerializer(typeof(List<Person>));
listData = (List<Person>)sr.ReadObject(stream);
//myListView.ItemsSource = listData;
}
}
是不是因为它不是异步的,如果是,我怎样才能使这个方法异步?我之前在 Windows Phone 8.1 上使用以下等待代码做过一个,是否有可用的 Xamarin Forms 等效项?
async public void success(Stream stream)
{
DataContractJsonSerializer sr = new DataContractJsonSerializer(typeof(List<Person>));
listData = (List<Person>)sr.ReadObject(stream);
await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
{
myListView.ItemsSource = listData;
});
}
【问题讨论】:
标签: c# listview asynchronous xamarin.forms