Как то так?
Predicate<string> predicate = input => input.Length > 0;
Expression<Func<string, bool>> expression = (input) => predicate(input);
Вероятно, вы можете создать Where
метод расширения для вашего ICollectionView, который принимает предикат, преобразует его в выражение, подобное этому, и затем вызывает метод Where, предоставленный Linq.
public static IQueryable<T> Where(this IQueryable<T> source, Predicate<T> predicate)
{
return source.Where(x => predicate(x));
}