因此,我目前正在尝试为Xamarin表单应用程序提供自动填充功能。该应用程序将从Google的Autocomplete API中获取输入,对其进行反序列化,然后将其传递到表中,然后该表将数据传递给listvbiew ...目前,我已经成功完成了以下操作:
使“位置”条目接受输入并将其转换为Google自动填充API URL。
将请求发送到Google的Autocomplete API,将请求转换为JSON包
以下是负责上述操作的大部分代码:
protected async void GetInfo(){
if (CrossConnectivity.Current.IsConnected){
try{
HttpClient webSource = new HttpClient();
Activity_Indicator.IsRunning = true;
var content = await webSource.GetStringAsync(url);
string EditedJSON = "[" + content + "]";
var DeserializedJSON = JsonConvert.DeserializeObject<List<PlacesAPI>>(EditedJSON);
ObservableCollection < PlacesAPI > results = new ObservableCollection<PlacesAPI>(DeserializedJSON);
ListViewUI.ItemsSource = results;
}
catch(Exception ey){
Debug.WriteLine("" + ey);
}
}
}
从这里开始,我要做的就是知道如何获取在results/[0]/predictions/([0],[1],[2])
中找到的“ description”值并将其绑定到这样设置的listview中:
<ListView x:Name="ListViewUI">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout>
<Label Text="{Binding ???}" TextColor="Black"/>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
说完所有内容后,它将使用结果列表中的三个描述值填充列表视图。
答案 0 :(得分:3)
我希望第一行具有来自结果/ [0] /预测/ [0]的描述值,第二行具有来自结果/ [0] /预测/ [1]的描述值,第三行具有结果/ [0] /预测/ [2]
中的描述值的行
那么您只希望将results[0].predictions
用作您的ItemsSource
ListViewUI.ItemsSource = results[0].predictions;
,您的绑定将只绑定到description
属性
<Label Text="{Binding description}" TextColor="Black"/>