Search code examples
c#wpfstartswithlistcollectionview

How can I search in a ListCollectionView?


Until yesterday I used a ListView and bound it to a List<>.
Then I read in some articles that it makes sense to bind the ListView to a ListCollectionView for easy filtering. I did this and it works fine.
But now I don’t know how I can find an item in the ListCollectionView.
Until yesterday I used this code, and it works with the List:

List<Artist> selectedArtistsList;
var item = selectedArtistsList.OrderBy(artist => artist.ArtistShowName).FirstOrDefault(artist => artist.ArtistShowName.StartsWith(FindInSelection1.Text, StringComparison.CurrentCultureIgnoreCase));

But it seems for a ListCollectionView there is nothing similar like StartsWith
How can I search in a (filtered) ListCollectionView?


Solution

  • ListCollectionView implements IEnumerable so just cast it to IEnumerable<Artist>

    var artist = listCollectionView
                     .Cast<Artist>()
                     .OrderBy(artist => artist.ArtistShowName)
                     .FirstOrDefault(artist => artist.ArtistShowName.StartsWith(FindInSelection1.Text, StringComparison.CurrentCultureIgnoreCase));