What problem does it solve? WPF filtering, sorting, and grouping require CollectionViewSource and ICollectionView, which live in WPF assemblies. Referencing them directly in ViewModels breaks MVVM separation and makes ViewModels untestable. This Skill provides an architecture that encapsulates CollectionView access in a Service Layer so ViewModels only use pure BCL types like IEnumerable. ## Core Features & Use Cases - Service Layer Encapsulation: Wrap CollectionViewSource in a service that returns IEnumerable, keeping ViewModels free of WindowsBase and PresentationFramework references. - Filtering, Sorting, and Grouping: Create filtered, sorted, and grouped views from a single shared ObservableCollection, with XAML GroupStyle templates for ListBox and Expander-based grouping. - Framework Variants: Includes implementations for both CommunityToolkit.Mvvm (ObservableObject, source generators) and Prism 9 (BindableBase, IContainerRegistry). - Use Case: A single member collection must be displayed in multiple Views with different filter conditions (e.g., by device type). The service creates one filtered view per ViewModel while all Views stay synchronized with the shared source collection. ## Quick Start Ask the AI to implement a WPF MVVM architecture where CollectionView filtering is encapsulated in a Service Layer so the ViewModel only uses IEnumerable.