Сам список не поддерживает такого рода фильтрацию из коробки. Лучше всего выполнить фильтрацию самостоятельно, каждый раз, когда текстовые изменения в текстовом поле выполняются, поиск по источнику данных и подача результатов в список.
Пока ваш источник данных (элементы в базе данных в данном случае) не гигантский, вы можете обойтись без него, кэшируя все элементы и выполняя поиск в памяти. При запуске извлеките все элементы и с этого момента используйте список в памяти для поиска. В наши дни вычислительная мощность не проблема, но все зависит от вашей текущей ситуации.
Я не знаю, насколько велик ваш источник данных и какова ваша архитектура / инфраструктура, но выполнение каждого «инкрементального» поиска по базе данных, вероятно, не самый быстрый вариант. И скорость имеет решающее значение с таким фильтрующим механизмом.
Если список в памяти или обращение к базе данных каждый раз не представляется возможным / выполнимым, Lucene.NET может быть наиболее эффективным вариантом. Lucene.NET был создан для создания индексов данных и выполнения сверхбыстрого поиска по этим индексам. Недостатком является то, что вам нужно будет создать индекс ваших данных и поддерживать его в актуальном состоянии, когда ваш источник данных изменяется, плюс - это невероятно быстро. (без шуток:)
Ссылка на Lucene.NET:
http://incubator.apache.org/projects/lucene.net.html