關於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。
有沒有辦法做到這一點?