public class SfSearchHandler : SearchHandler
{
private readonly MainSearchViewModel _vm = new MainSearchViewModel();
private QuotaViewModel _qvm;
public bool IsBusy => _vm.IsBusy;
public SfSearchHandler()
{
_vm.CompliteItems += Complete;
}
private void Complete()
{
if (_qvm != null)
{
MainThread.BeginInvokeOnMainThread(() =>
{
ItemsSource = _vm.Items.ToList();
_qvm.IsBusy = false;
});
}
}
protected override void OnQueryChanged(string oldValue, string newValue)
{
base.OnQueryChanged(oldValue, newValue);
if (string.IsNullOrWhiteSpace(newValue))
{
ItemsSource = null;
}
else
{
if (BindingContext is QuotaViewModel bs)
{
_qvm = bs;
_qvm.IsBusy = true;
}
_vm.LoadItemsCommand.Execute(newValue);
}
}