Ваша проблема в том, что вы хотите, чтобы условие «Где» оценивалось непрерывно для всех элементов, добавленных в коллекцию «store». Встроенный оператор LINQ «Где» не предназначен для этого. Скорее, когда он перечисляется ListView, он сканирует вашу коллекцию ровно один раз, а затем игнорирует ее.
Выезд Непрерывный LINQ . Он разработан для того, чтобы делать именно то, что вы ищете, и может использоваться почти как замена для стандартных запросов LINQ.
Ограничения встроенной реализации LINQ
Встроенные методы расширения LINQ имеют фундаментальное ограничение, заключающееся в том, что создаваемые ими коллекции не поддерживают INotifyPropertyChanged. Поэтому независимо от того, насколько сильно изменяются базовые данные, клиент никогда не получит уведомление о том, что коллекция изменилась, и, следовательно, никогда не обновит отображение данных.
Пользователь jrista указывает в комментариях, что встроенные методы LINQ действительно производят обновленные данные при повторном перечислении. Хотя это правда, это не имеет никакого практического эффекта. Ни один элемент управления WinForms или WPF не содержит кода для периодического повторного перечисления источника данных. Конечно, причины такого не очевидны: это было бы невероятно расточительно. Если вы пересчитываете 10 раз в секунду, и для перерасчета и сканирования изменений требуется 10 мс, вы будете использовать до 10% своего ЦП только для одного элемента управления!