title: Observable binding to two ICollectionView of same collection
body: <p>So I'm using <code>WPF</code> in the <code>MVVM</code> way using <code>Caliburn.Micro</code> as a framework.</p>
  
  <p>I have a ViewModel with a ObservableCollection that I need to show twice with different sorting, filtering and grouping.</p>
  
  <p>I'm kind of having a hard time with this supposedly simple action. I normally would do this:</p>
  
  <pre><code>private ICollectionView _datagridCollectionView;
  public ICollectionView DatagridCollectionView
  {
      get
      {
          if (this._datagridCollectionView == null)
          {
              this._datagridCollectionView = CollectionViewSource.GetDefaultView(this.Items);
              using (this._datagridCollectionView.DeferRefresh())
              {
                  this._datagridCollectionView.SortDescriptions.Clear();
                  this._datagridCollectionView.SortDescriptions.Add(new SortDescription("SortingProperty", ListSortDirection.Ascending));
              }
          }
          return this._datagridCollectionView;
      }
  }
  </code></pre>
  
  <p>And it works fine, it sorts and it's observable.</p>
  
  <p>So I added the second view the same way:</p>
  
  <pre><code>private ICollectionView _chartCollectionView;
  public ICollectionView ChartCollectionView
  {
      get
      {
          if (this._chartCollectionView == null)
          {
              this._chartCollectionView = CollectionViewSource.GetDefaultView(this.Items);
              using (this._chartCollectionView.DeferRefresh())
              {
                  this._chartCollectionView.Filter = (p) =&gt; { return p.IsChartable; };
              }
          }
          return this._chartCollectionView;
      }
  }
  </code></pre>
  
  <p>Now the problem is (likely because I access the default view and thus have the same reference) that all sorting/filtering is done to both views.</p>
  
  <p>So I tried to do new instance of <code>ICollectionView</code> but <code>CollectionView</code> should not be used and <code>ListCollectionView</code> is made for lists and not <code>IEnumarbles</code> so I even if I use the <code>ToList()</code> method the views are no longer Observable.</p>
  
  <p>What would be the proper way to do this?</p>