使用mvvm模式在列表视图上使用搜索栏的搜索命令

时间:2017-08-15 17:09:18

标签: xamarin mvvm data-binding xamarin.forms

我是xamarin mvvm模式的初学者。目前我正在尝试创建一个搜索栏,用于搜索名称列表中的单词。我尝试在我的视图模型上的comman函数上编写一些代码,并将其绑定在视图上的sort [rand-num] of turtles搜索栏上。但它没有用。这是我的代码

rand-num

这是我的xaml文件

SearchCommand

1 个答案:

答案 0 :(得分:1)

首先,请确保将ContentPage BindingContext设置为CustViewModel

此外,您应该停止向_list分配和添加内容,而是将内容分配并添加到您的公共Items媒体资源中。 Items是在NotifyPropertyChanged()方法被分配时将触发的方法。

所以将SearchCommand改为此:

return new Command(() => {
    string keyword = _bar;
    IEnumerable<String> searchresult = _list.Where(name => name.Contains(keyword));

    Items = new ObservableCollection<string>(searchresult);

    //NotifyPropertyChanged(); //There is no reason to trigger NotifyPropertyChanged on this command each time the getter is run, I would image that this could cause an infinite loop
});