pensco che il problema potrebbe essere qui:
codice:
 //var mockItems = new List<Item>
//{
//    new Item { Id = Guid.NewGuid().ToString(), Title = "100", Author="This is an item description." },
//    new Item { Id = Guid.NewGuid().ToString(), Title = "second item", Author="This is an item description." },
//    new Item { Id = Guid.NewGuid().ToString(), Title = "Third item", Author="This is an item description." },
//    new Item { Id = Guid.NewGuid().ToString(), Title = "Fourth item", Author="This is an item description." },
//    new Item { Id = Guid.NewGuid().ToString(), Title = "Fifth item", Author="This is an item description." },
//    new Item { Id = Guid.NewGuid().ToString(), Title = "Sixth item", Author="This is an item description." },
//};

var client = new HttpClient();
var json = await client.GetStringAsync(Costanti.allBooks);
List<Item> mockItems = JsonConvert.DeserializeObject<List<Item>>(json);

foreach (var item in mockItems)
{
   items.Add(item);
}
il codice commentato era quello di esempio.
con quello funziona anche il search.
con il mio invece viene riempita la lista, ma il search non funziona.
sinceramente non riesco bene a capire la differenza!
qualche suggerimento??