[Xamarin]如何将列表中的结果绑定到Listview中?

时间:2018-08-19 22:05:30

标签: c# xamarin

因此,我目前正在尝试为Xamarin表单应用程序提供自动填充功能。该应用程序将从Google的Autocomplete API中获取输入,对其进行反序列化,然后将其传递到表中,然后该表将数据传递给listvbiew ...目前,我已经成功完成了以下操作:

  • 使“位置”条目接受输入并将其转换为Google自动填充API URL。

  • 将请求发送到Google的Autocomplete API,将请求转换为JSON包

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

这给了我以下列表: https://i.stack.imgur.com/yMU78.png

从这里开始,我要做的就是知道如何获取在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>

说完所有内容后,它将使用结果列表中的三个描述值填充列表视图。

1 个答案:

答案 0 :(得分:3)

  

我希望第一行具有来自结果/ [0] /预测/ [0]的描述值,第二行具有来自结果/ [0] /预测/ [1]的描述值,第三行具有结果/ [0] /预测/ [2]

中的描述值的行

那么您只希望将results[0].predictions用作您的ItemsSource

ListViewUI.ItemsSource = results[0].predictions;

,您的绑定将只绑定到description属性

<Label Text="{Binding description}" TextColor="Black"/>