У меня есть следующий (псевдо) код:
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
одновременно. Возможно ли это?