当DataGrid上的Item源发生更改时,WPF DataGrid排序

时间:2014-07-08 07:05:51

标签: c# wpf xaml sorting datagrid

当网格的Itemsource发生变化时,是否有人知道如何对Datagrid进行排序?即如果我有产品的DataGrid和产品版本的另一个网格,当我选择产品时,产品版本DataGrid的ItemSource将会改变,所以我想在数据出现在Product Versions DataGrid中之前进行排序。 / p>

我现在进行排序的方式是。

<CollectionViewSource x:Key="cvsProductVersions" 
     Source="{Product.ProductVersions, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
     Filter="CollectionViewSource_Filter">
     <!--<CollectionViewSource.SortDescriptions>
        <scm:SortDescription PropertyName="Build1"  Direction="Descending"/>
     </CollectionViewSource.SortDescriptions>-->
  </CollectionViewSource>

我想我需要使用

CollectionViewSource.GetDefaultView(dgProductVersion.ItemsSource).Refresh();

但是,我需要一个事件,基本上意味着“在将新的项目源应用于表格后运行此代码。”

干杯

1 个答案:

答案 0 :(得分:1)

在某个阶段,我猜测您将集合设置为ItemsSource的{​​{1}}属性值。为什么不在}之前使用CollectionViewSource 对其进行排序?将其分配给LinQ?:

CollectionViewSource

可以直接刷新SomeCollection = new ObservableCollection(SomeCollection.OrderBy(i => i.Build)); ,但它通常不是用户想要的,因为它会完全刷新...你可以尝试这样的事情:

CollectionViewSource

可以在Dr. WPF网站的ItemsControl: 'E' is for Editable Collection找到第三个选项。