DynamicData - применить коллекцию фильтров одновременно - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть следующий (псевдо) код:

IObservable<IChangeSet<MyEntityViewModel>> changeSet = source.Connect();

ObservableCollection<FilterViewModelBase> filtersViewModels = // collection of FilterViewModelBase concrete implementations e.g. NumericRangeFilter or TextFilter etc.

List<IObservable<Func<MyEntityViewModel,bool>>> observableFilters = new List<IObservable<Func<MyEntityViewModel, bool>>>();

foreach (FilterViewModelBase filter in filtersViewModels)
{
    if (filter is NumericRangeFilterViewModel numericFilter)
    {
        var observableFilter = numericFilter.WhenAny(x => x.Min, x => x.Max).Select(........ // create numeric filter
        observableFilters.Add(observableFilter); // add numeric filter to observable list
    }
    else if (filter is TextFilterViewModel textFilter)
    {
        var observableFilter = textFilter.WhenAny(x => x.Text).Select(.... // create text filter
        observableFilters.Add(observableFilter); // add text filter to observable list
    }
}

changeSet
    .Filter(????) // cannot pass `observableFilters` list here
    .ObserveOn(RxApp.MainThreadScheduler)
    .Bind(out _filteredEntities)
    .Subscribe();

Я не знаю, как отфильтровать мой changeSet, используя все фильтры из observableFilters одновременно. Возможно ли это?

...