Обновление : эти классы больше не доступны, проверьте ObservableCollectionView
Оригинальный ответ
Попробуйте один из следующих классов:OrderedObservableCollection
или FilteredObservableCollection
OriginalList = new ObservableCollection<Person>();
FilteredList = new OrderedObservableCollection<Person, int>(originalList, p => p.Age, a => a.Age >= 18);
* FilteredList
содержит только лиц в возрасте> = 18 лет, и все люди отсортированы по возрасту.FilteredList
будет автоматически обновляться, если что-то изменится в OriginalList
.Если OriginalList
является глобальным и FilteredList
используется на странице, вам нужно вызвать FilteredList.Unload()
, чтобы удалить привязку события - это необходимо для того, чтобы сборщик мусора мог освободить FilteredList
.
Эти классы не полностью протестированы, если вы обнаружите проблему, сообщите об этом здесь.
Кстати: я не доволен методом Unload()
.Можно ли добавить что-то вроде слабой ссылки на событие?