【问题标题】:Autocomplete Entry in Xamarin.FormsXamarin.Forms 中的自动完成条目
【发布时间】:2018-02-20 16:14:46
【问题描述】:
【问题讨论】:
标签:
xamarin
xamarin.forms
autocompletetextview
【解决方案1】:
您可以使用以下组件来实现它。
- 带有 TextChanged 事件的输入字段。
- 用于显示数据集的 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();
}
}