当数据网格上的项目源更改时,WPF数据网格排序

本文关键字:数据网 网格 数据 排序 WPF 项目 | 更新日期: 2023-09-27 18:11:49

有人知道我如何排序数据网格时,网格的Itemsource更改?例如,如果我有一个产品的数据网格,和另一个产品版本的网格,当我选择一个产品时,产品版本数据网格的ItemSource将会改变,所以我想在数据出现在产品版本数据网格内之前进行排序。

我现在排序的方式是。

<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();

然而,我需要一个事件,基本上意味着"运行这段代码一旦一个新的项目源应用到表。

欢呼

当数据网格上的项目源更改时,WPF数据网格排序

在某些阶段,我猜您将集合设置为CollectionViewSourceItemsSource属性值。为什么不在分配给CollectionViewSource之前使用LinQ 进行排序呢?:

SomeCollection = new ObservableCollection(SomeCollection.OrderBy(i => i.Build));

可以直接刷新CollectionViewSource,但这通常不是用户想要的,因为它会完全刷新…您可以尝试这样做:

(dgProductVersion.ItemsSource as ListCollectionView).Refresh();

第三个选项可以在ItemsControl中找到:'E'表示Dr. WPF网站上的可编辑集合