关于WPF中CollectionViewSource的过滤,分组和排序有很多讨论,什么是“MVVM” - 实用(特别是在代码隐藏中添加过滤器时)。我想要ViewModel控制这些属性(如添加排序和过滤器描述符),但为了使用SynchronizationContext
与Asynchronous ObservableCollection,我需要在视图中(在调度器线程上)实例化的CollectionViewSource,而不是实例化在模型中 - 但模型需要访问CollectionViewSource以便从代码添加过滤器,组和排序描述符,而不是在XAML中定义它们。 为此,我想找到一种方法将XAML声明的CollectionViewSource对象BACK绑定到ViewModel。事情是这样的:将XAML定义的CollectionViewSource绑定到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没有一个“绑定”属性,并且源必须指向一个ObservableCollection。
有没有办法做到这一点?