【问题标题】:[Xamarin]How to bind results from list into Listview?[Xamarin]如何将列表中的结果绑定到Listview中?
【发布时间】:2018-08-19 22:05:30
【问题描述】:

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

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

  • 将请求发送到 Google 的自动完成 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);
            }
        }
    }

这给了我以下列表:

从这里我需要做的就是知道如何获取在results/[0]/predictions/([0],[1],[2]) 中找到的“描述”值并将其绑定到我这样设置的列表视图中:

<ListView x:Name="ListViewUI">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <ViewCell>
                            <StackLayout>
                                <Label Text="{Binding ???}" TextColor="Black"/>
                            </StackLayout>
                        </ViewCell>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>

当一切都说完了,它将使用结果列表中的三个描述值填充列表视图。

【问题讨论】:

  • 所以您的 List 的每一行都包含多个预测对象,并且您想整理它们的描述以显示为单个值?
  • 不,我希望第一行的描述值来自 results/[0]/predictions/[0],第二行的描述值来自 results/[0]/predictions/ [1],第三行的描述值来自 results/[0]/predictions/[2]

标签: c# xamarin


【解决方案1】:

我希望第一行具有来自 results/[0]/predictions/[0] 的描述值,第二行具有来自 results/[0]/predictions/[1] 的描述值,第三行具有来自 results/[0]/predictions/[1] 的描述值行具有来自 results/[0]/predictions/[2] 的描述值

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

ListViewUI.ItemsSource = results[0].predictions;

您的绑定将只是description 属性

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

【讨论】:

    猜你喜欢
    • 2020-11-09
    • 2019-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    • 2019-12-01
    相关资源
    最近更新 更多