【问题标题】:Autocomplete Entry in Xamarin.FormsXamarin.Forms 中的自动完成条目
【发布时间】:2018-02-20 16:14:46
【问题描述】:

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

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

我已经裁判 XLabs 自动完成。但无法正确实施

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

【问题讨论】:

标签: xamarin xamarin.forms autocompletetextview


【解决方案1】:

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

  1. 带有 TextChanged 事件的输入字段。
  2. 用于显示数据集的 ListView。

作为第一步,您可以在 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 分别是 ListView 和 Entry 的 x:Name

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

【讨论】:

    【解决方案2】:

    您必须使用TextChanged 属性。那是一个事件。每次您在条目中输入文本时都会触发。

    前: 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();
         }
     }
    

    【讨论】:

      猜你喜欢
      • 2016-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-14
      • 2015-01-13
      • 1970-01-01
      • 2016-08-18
      相关资源
      最近更新 更多