Создайте свойство на вашем View Model
, например
public ObservableCollection<Employee> Employees { get; set; }
<ListView x:Name="lstData" HasUnevenRows="false" ItemsSource="{Binding Employees}" Header="Header Value" Footer="Footer" ItemSelected="OnSelection" >
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Orientation="Horizontal" Padding="5,5,5,5">
<Label Text="{Binding EmpName}" FontSize="Medium" />
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Затем создайте метод для привязки значений dataset
к вашему списковому представлению
private async Task BindEmployees()
{
List<Employee> employees = await GetAllEmployees();
Employees = new ObservableCollection<Employee>(
vList.Where(e => e.Name.Contains(mySearchString)).
OrderBy(x => x.EmpName).ToList());
await RaisePropertyChanged("Employees");
}
Вызов этого метода при загрузке страницы или внутри вашего View Model's
конструктора
Task.Run(async() => {
await BindEmployees();
});
Также создайте метод Handler, который будет вызываться каждый раз, когда вы вводите что-либо в search bar
и снова вызовите BindEmployees
метод внутри этой функции-обработчика
FilterEmployee_Handler(TextChangedEventArgs args) {
await BindEmployees(),
}