Filtrer une collection Observable?

Quand je lier une zone de liste directement à une ObservableCollection-je obtenir le temps réel des mises à jour affichées dans ma ListBox, mais dès que j'ajoute d'autres méthodes LINQ dans le mélange de ma ListBox n'est plus avisé de tout changement à l'ObservableCollection.

Ici, permettez-moi d'illustrer mon propos avec un exemple;

public partial class MainPage : PhoneApplicationPage
{
    ObservableCollection<String> Words = new ObservableCollection<string>();

    public MainPage()
    {
        InitializeComponent();
        listBox1.ItemsSource = Words;
    }

    private void AddButton_Click(object sender, RoutedEventArgs e)
    {
        Words.Add(DateTime.Now.ToString());
    }
}

Ici, j'ai ajouté un Bouton et une zone de liste à une simple Page, et en cliquant sur le bouton nouvel élément apparaît immédiatement dans la zone de liste.

Cependant, si je change de

        listBox1.ItemsSource = Words;

à

        listBox1.ItemsSource = Words.Where(w => w.Contains(":"));

la zone de liste n'est plus mise à jour.

Comment puis-je ajouter un "filtre" entre mes ObservableCollection et de la zone de liste, et toujours avoir à mettre à jour sans avoir à mettre de la .ItemsSource de nouveau?

source d'informationauteur Frode Lillerud