using-avalonia-collectionviewlisted
Install: claude install-skill christian289/dotnet-with-claudecode
# 6.7 MVVM Pattern with CollectionView
**⚠️ Important: AvaloniaUI does not support WPF's CollectionViewSource.**
## Project Structure
The templates folder contains a .NET 9 AvaloniaUI project example.
```
templates/
├── AvaloniaCollectionViewSample.Core/ ← Pure C# models and interfaces
│ ├── Member.cs
│ ├── IMemberCollectionService.cs
│ └── AvaloniaCollectionViewSample.Core.csproj
├── AvaloniaCollectionViewSample.ViewModels/ ← ViewModel (no Avalonia references)
│ ├── MainViewModel.cs
│ ├── GlobalUsings.cs
│ └── AvaloniaCollectionViewSample.ViewModels.csproj
├── AvaloniaCollectionViewSample.AvaloniaServices/ ← Avalonia Service Layer
│ ├── MemberCollectionService.cs
│ ├── GlobalUsings.cs
│ └── AvaloniaCollectionViewSample.AvaloniaServices.csproj
└── AvaloniaCollectionViewSample.App/ ← Avalonia Application
├── Views/
│ ├── MainWindow.axaml
│ └── MainWindow.axaml.cs
├── App.axaml
├── App.axaml.cs
├��─ Program.cs
├── GlobalUsings.cs
└── AvaloniaCollectionViewSample.App.csproj
```
In AvaloniaUI, use the following approaches:
#### 6.7.1 Using DataGridCollectionView (Recommended)
```csharp
// NuGet: Avalonia.Controls.DataGrid
// Service Layer
namespace MyApp.Services;
using Avalonia.Controls;
public sealed class MemberCollectionService
{
private ObservableCollection<Member> Source { get; } = [];
// Returns DataGridCollectionView
public IEnumerable CreateView(Predicate<Member>? filter