public CollectionViewDemoViewModel()
        {
            Enumerable    = new[] { 1, 2, 3, 4, 5 };
            FilteredView1 = Enumerable.AsReadOnlyFilteredView(FilterMethod, TimeSpan.FromMilliseconds(10), WpfSchedulers.Dispatcher, this.ObservePropertyChanged(x => x.Filter));
            FilteredView2 = Enumerable.AsReadOnlyFilteredView(FilterMethod, TimeSpan.FromMilliseconds(10), WpfSchedulers.Dispatcher, this.ObservePropertyChanged(x => x.Filter));

            ObservableCollection   = new ObservableCollection <int>(new[] { 1, 2, 3, 4, 5 });
            ObservableDefaultView  = CollectionViewSource.GetDefaultView(ObservableCollection);
            ObservableFilteredView = ObservableCollection.AsFilteredView(Filter, TimeSpan.Zero, WpfSchedulers.Dispatcher);
            ThrottledFilteredView  = ObservableCollection.AsFilteredView(Filter, TimeSpan.FromMilliseconds(10), WpfSchedulers.Dispatcher);

            this.ObservePropertyChanged(x => x.Filter, false)
            .Subscribe(
                x =>
            {
                WpfSchedulers.Dispatcher.Schedule(() => ObservableDefaultView.Filter = o => Filter((int)o));
                ObservableFilteredView.Filter = Filter;
                ThrottledFilteredView.Filter  = Filter;
            });
        }