Liaison XAML à une propriété CollectionViewSource sur un ViewModel

J'ai un simple ViewModel comme:

public class MainViewModel {
    ObservableCollection<Project> _projects;
    public MainViewModel() {
        //Fill _projects from DB here...
        ProjectList.Source = _projects;
        ProjectList.Filter = ...;
    }

    public CollectionViewSource ProjectList { get; set; }
}

J'ai mis du DataContext de la fenêtre d'une nouvelle instance de ce Dernier dans le constructeur:

public MainWindow() {
    this.DataContext = new MainViewModel();
}

Puis, dans le Xaml, je cherche à lier la ItemsSource d'une zone de liste pour que ProjectList propriété.

Liaison juste ItemsSource comme si ne fonctionne pas:

<ListBox ItemsSource="{Binding ProjectList}" ItemTemplate="..." />

Mais si j'ai d'abord rebase le DataContext cela fonctionne:

<ListBox DataContext="{Binding ProjectList}" ItemsSource="{Binding}" ItemTemplate="..." />

Ne devrait pas la première méthode fonctionne correctement? Que pourrais-je fait de mal?

source d'informationauteur joshperry