我在备忘录Xamarin应用程序中添加了一个搜索栏。我使用此事件处理程序在文本更改时获取备忘录列表:
private void SearchBar_OnTextChanged(object sender, TextChangedEventArgs e)
{
MemoList.ItemsSource = GetMemo(e.NewTextValue);
}
处理程序调用{{1}}函数但是当我在GetMemo
变量中有一个值时,该函数返回null并且我不知道为什么。
searchText
Lambda表达式或Linq表达式有问题吗?
我不得不说当我没有传递任何参数时函数会正确返回。
答案 0 :(得分:8)
试试这个:
return new ObservableCollection<Memo>(_memos.Where(c => c.Title.StartsWith(searchText));
您必须围绕来自linq表达式的IEnumerable结果包装ObservableCollection。只需将IEnumerable结果作为ObservableCollection构造函数参数传递。