如何在Xamarin表单中实现自动完成条目。
如果我有一个输入控件并输入一些文本,它应该从一组数据中搜索项目,并将其显示为条目的下拉列表。
我已经参考了XLabs自动完成功能。但无法正确实施
https://github.com/XLabs/Xamarin-Forms-Labs/wiki/AutoComplete
答案 0 :(得分:1)
您可以使用以下组件来实现它。
作为第一步,您可以在具有垂直对齐的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();
}
}