我需要实现一个建议框,为此我放置了一个条目来接受关键字,并在其下方使用 Listview 来显示建议。Listview 已经有 DataSource 和一些条目。现在我想实现它像 -
“例如,如果关键词是:
- 牛奶
- 肉
- 奶油
当用户输入 ""m"" 时,Cream 被过滤掉,只显示 Milk 和 Meat,因为它们以 ""m"" 开头。当用户输入“mi”时,Meat 也会被过滤掉,只显示 Milk。”
我需要实现一个建议框,为此我放置了一个条目来接受关键字,并在其下方使用 Listview 来显示建议。Listview 已经有 DataSource 和一些条目。现在我想实现它像 -
“例如,如果关键词是:
当用户输入 ""m"" 时,Cream 被过滤掉,只显示 Milk 和 Meat,因为它们以 ""m"" 开头。当用户输入“mi”时,Meat 也会被过滤掉,只显示 Milk。”
干得好
var list = new List<string> { "Milk", "Cream", "Meat" };
var myListView = new ListView();
myListView.ItemsSource = list;
var entry = new Entry();
entry.TextChanged += delegate(object sender, TextChangedEventArgs args)
{
if (string.IsNullOrEmpty(entry.Text))
{
myListView.ItemsSource = list;
}
else
{
myListView.ItemsSource = list
.Where(x => x.ToLower()
.StartsWith(entry.Text.ToLower()));
}
};
MainPage = new ContentPage()
{
Content = new StackLayout()
{
Children = { entry, myListView }
}
};
您可以通过将其更改为以下内容来使其不区分大小写:
myListView.ItemsSource = list.Where(x => x.ToLower().StartsWith(entry.Text.ToLower()));