Я бы предложил использовать библиотеку Bindable.Linq , она давно не обновлялась и есть ошибка с оператором Union. Но для фильтров в стиле linq это прекрасно работает.
Вот краткий пример, предполагая, что это в коде позади пользовательского элемента управления silverlight со списком с именем people:
using Bindable.Linq;
...
ObservableCollection<Person> data = new ObserableCollection<Person>{.... fill in};
people.ItemsSource = data.AsBindable(Dispatcher).Where(p => p.FirstName.Equals("steve"));
data.add(new Person("steve"));
если вы сделаете это, Стив должен появиться в списке. Я нашел эту библиотеку очень полезной, и если вы загружаете примеры проектов из codeplex, она показывает более сложные примеры.
Надеюсь, это поможет.
Есть еще несколько похожих проектов