2
我需要實現一個建議框,爲此目的,我放置了一個Entry來接受關鍵字,並且正好在我使用Listview顯示建議之下。 ListView已經有了DataSource和一些條目。現在我想實現它喜歡 -如何在Xamarin表單中實現搜索建議
「例如,如果關鍵詞是:
- 牛奶
- 肉類
- 霜
和用戶類型 「」 米「」,奶油被過濾掉,只顯示牛奶和肉類,因爲它們以「」m「」開頭。當用戶輸入「」mi「」時,肉類也被過濾掉,只顯示牛奶。
我需要實現一個建議框,爲此目的,我放置了一個Entry來接受關鍵字,並且正好在我使用Listview顯示建議之下。 ListView已經有了DataSource和一些條目。現在我想實現它喜歡 -如何在Xamarin表單中實現搜索建議
「例如,如果關鍵詞是:
和用戶類型 「」 米「」,奶油被過濾掉,只顯示牛奶和肉類,因爲它們以「」m「」開頭。當用戶輸入「」mi「」時,肉類也被過濾掉,只顯示牛奶。
在這裏你去
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()));
嗨TheMoFaDe,這確實是很好的解決方案,但我在面對一個問題,它僅顯示小寫字母的結果,而不顯示Capital Capital的結果。它不應該大小寫敏感。如果用戶輸入「m」或「M」,則應列出所有以「m」或「M」開頭的項目,反之亦然。 – Dipak
我解決它通過替換myListView.ItemsSource = list.Where(x => x.ToLower()。StartsWith(entry.Text)); ----- with ----- myListView.ItemsSource = list.Where(x => x.StartsWith(entry.Text)); -----但區分大小寫。我不知道如何讓它不區分大小寫。 – Dipak