Для достижения того, что вы хотите, я предлагаю следующее решение:
1.
.В модели представления вы создаете список, содержащий все данные, полученные из источника данных.
var myList = new List<string>();
2.
Создайте отфильтрованный список, который получается всякий раз, когда пользователи вводят текст, а выотфильтрует ваши данные на основе введенного текста.
var filteredList = myList.FindAll(myFilter);
, где myFilter - это метод фильтрации данных на основе некоторых критериев.
3.
Свяжите отфильтрованный список с ItemsSource элемента управления представления списка.
Следовательно, вы можете получить доступ к элементам, которые в данный момент отображаются.