Xamarin.Forms中的自动完成条目

时间:2017-09-12 09:09:23

标签: xamarin xamarin.forms autocompletetextview

如何在Xamarin表单中实现自动完成条目。

如果我有一个输入控件并输入一些文本,它应该从一组数据中搜索项目,并将其显示为条目的下拉列表。

我已经参考了XLabs自动完成功能。但无法正确实施

https://github.com/XLabs/Xamarin-Forms-Labs/wiki/AutoComplete

2 个答案:

答案 0 :(得分:1)

您可以使用以下组件来实现它。

  1. 带有TextChanged事件的输入字段。
  2. 用于显示数据集的ListView。
  3. 作为第一步,您可以在具有垂直对齐的StackLayout中创建Entry和ListView。将ListView的ItemSource设置为您的数据集。 在函数中为TextChanged事件添加以下代码

        void OnTextChanged(object sender, EventArgs args)
        {
            Site_listView.ItemsSource = vm.SiteList.Where(x => x.siteName.ToLower().Contains(siteNameEntry.Text.ToString().ToLower())).ToList();
    
        }
    

    Site_listView,siteNameEntry分别是x:ListView和Entry的名称

    您可以在列表视图中使用ItemSelected / ItemTapped事件从列表中选择项目并将其分配给Entry。此外,您还可以使用聚焦,未聚焦事件来设置列表的可见性。

答案 1 :(得分:0)

您必须使用TextChanged属性。那是一个事件。每当您在条目中输入文本时,它将触发。

EX: XAML代码:

<Entry x:Name="searchCustomer" Placeholder="Search Customer" TextChanged ="searchCustomerList" Completed="searchCustomerList"></Entry>

CS代码:

 protected void searchCustomerList(object sender, EventArgs eventArgs)
 {
  var searchText = searchCustomer.Text;
   if (searchText != null)
     {
        var FilterSearchCustomer =vendorCustomerList.Where(x => x.FirstName.ToLower().Contains(searchText.ToLower())).ToList();
     }
 }