У меня есть список, определенный в XAML, и я фильтрую его элементы, используя следующий код из текста, полученного из текстового поля:
if (list.Items.Count > 0)
{
CollectionViewSource.GetDefaultView(list.Items).Filter =
new Predicate<object>((item) => {
string valtoCheck = item.ToString();
return valtoCheck.StartsWith(filterText,
StringComparison.CurrentCultureIgnoreCase);
});
}
Все работает отлично, за исключением случая, когда фильтр не находит подходящих элементовкритерии.
отл.Допустим, у меня есть 4 пункта в списке: Rob
, Bob
, Andy
, John
.
Когда я ввожу Ro
, список фильтруется соответствующим образом (показывает rob).
Когда я ввожу b
, список фильтруется соответствующим образом (показывает bob).
Однако, если я введу z
(целевой список станет пустым), я получу пустой список, который является правильным;но затем List.Items.Count устанавливается в ноль с этого момента.Список становится пустым.Я хотел бы предположить, что ввод замены b
должен показать мне Bob
, но это не так;элементы списка становятся пустыми, как только я ввожу текст, который не содержится ни в одном из элементов списка!
Я что-то здесь упускаю?