У меня есть коллекция, которую необходимо разделять на разные отфильтрованные коллекции. Это wpf, каждая отфильтрованная коллекция в новом табе. Идея здесь в том, чтобы создать для каждого таба по коллекции, если логика фильтрации сильно различается, и сделать эти коллекции проекциями одной коллекции с исходными данными. Делаю я это так:
ReceivedApplicationMessages
.ToObservableChangeSet()
.Filter( x => x.Topic != null
&& x.Topic.Contains( topic ) )
.Sort(SortExpressionComparer<ReceivedApplicationMessageViewModel>
.Descending(e => e.Id))
.Bind( out _messages )
.Subscribe();
Tabs.Add( new TabItemModel( topic, _messages ) );
Теперь мне нужно реализовать поиск по отфильтрованным сообщениям. Как это сделать?
Я пытался делать так: Создаю свойство, которое потом биндится к текстбоксу.
private string _searchText;
public string SearchText
{
get { return _searchText; }
set { this.RaiseAndSetIfChanged(ref _searchText, value); }
}
А потом добавляю еще один фильтр:
.Filter( x => x.Topic != null
&& x.Topic.Contains( SearchText ) )
Но.. ничего не получается, фильтр не срабатывает. Как можно решить эту проблему?
SortedCollection, которых вы можете создать сколько угодно, с разными фильтрами, сортировками и прочим. – EvgeniyZ May 20 '22 at 15:12ICollectionView.Filterвас спасёт. – aepot May 20 '22 at 17:43