Checkbox binding to change the ListView's items source
You should probably bind ItemsSource to CollectionView, instead of binding to ObservableCollection. This way you don't have to recreate collection every time you want to apply your filter. May look like this:

//constructor
Parts = new ObservableCollection&lt;EditPartViewModel&gt;(allpvms);
PartsCollectionView = (ListCollectionView)CollectionViewSource.GetDefaultView(Parts);

...............

public ListCollectionView PartsCollectionView { get; private set; }

public bool ErrorParts
{
    get
    {
        return _errorParts;
    }
    set
    {
        _errorParts = value;
        OnPropertyChanged("ErrorParts");
        PartsCollectionView.Filter = value ? (Predicate&lt;Object&gt;)(p =&gt; ((EditPartViewModel)p).Price == null) : null;
    }
}


Also if your viewmodles can contain errors, you should probably move your error-checking logic inside those viewmodels. So instead of writing p.Price == null you would write p.HasErrors or something.

You should also indicate, that ErrorParts is actually a bool property, unlike AllParts which is a collection. DisplayErrors or ShowErrors or FilterErrors etc. are better names for this property in my opinion.