用于DataGrid的WPF CollectionViewSource - 根本不应用SortDescription

时间:2018-01-31 13:08:23

标签: c# wpf

我尝试使用CollectionViewSource来对WPF DataGrid中显示的项目进行排序。 项目本身通过ObservableCollection通过视图模型给出。

Observable Collection本身在运行时会发生变化(例如,对于新项目,它不是.Clear()ed,但是给出了一个全新的ObservableCollection)。

视图模型:

  public class ViewModel
  {
    public ObservableCollection<Item> Items
    {
      get { return _Items; }
      set { this.SetAndRaiseIfChanged(ref _Items, value); }
    }
  }

  public class Item
  {
     public DateTime Time { get { return ....; } }
  }

查看:

 <Grid>
    <Grid.Resources>

        <CollectionViewSource x:Key="cvs" Source="{Binding Items}">
            <CollectionViewSource.SortDescriptions>
                <scm:SortDescription PropertyName="Time" Direction="Descending"/>
            </CollectionViewSource.SortDescriptions>
        </CollectionViewSource>

    </Grid.Resources>

    <DataGrid ItemsSource="{Binding Source={StaticResource cvs}}"/>
  </Grid>

现在 - 这不起作用。这些项目正在DataGrid中显示,但根本不会应用任何排序。

我已经查看了视图并在运行时钻入DataGrid;它的ItemsSource属性是ListCollectionView类型,它根本没有任何SortDescriptions。

有没有人知道ListCollectionView的来源,以及为什么我的XAML中的SortDescriptiosn没有应用?

谢谢!

0 个答案:

没有答案