Существует много дискуссий о фильтрации, группировании и сортировке на CollectionViewSource в WPF, а также то, что не является MVVM -практичным (особенно при добавлении фильтров в код).Связанный с XAML CollectionViewSource для ViewModel
Я хочу иметь ViewModel контроля над этими свойствами (например, добавление сортировки и фильтрация дескрипторы), но для того, чтобы использовать SynchronizationContext
с асинхронным ObservableCollection, мне нужно CollectionViewSource инстанцированного в представлении (на диспетчерской нити), НЕ инстанцировано в модели - но модели требуется доступ к CollectionViewSource, чтобы добавить дескрипторы фильтра, группы и сортировки из кода, а не определять их в XAML. С этой целью я хотел бы найти способ привязать объект CollectionViewSource, объявленный XAML, к BACK в ViewModel. Что-то вроде этого:
<UserControl.Resources>
<CollectionViewSource
IsLiveFilteringRequested="True"
x:Name="collectionViewSource"
x:Key="collectionViewSource"
Source="{Binding DataContext.myCollection, IsAsync=True}"
Binding="{Binding DataContext.myCollectionViewSourceProperty, Mode=OneTime}" />
</UserControl.Resources>
Конечно, CollectionViewSource не имеет свойство «Binding», и источник должен указывать на ObservableCollection.
Есть ли способ сделать это?