当网格的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();
但是,我需要一个事件,基本上意味着“在将新的项目源应用于表格后运行此代码。”
干杯
答案 0 :(得分:1)
在某个阶段,我猜测您将集合设置为ItemsSource
的{{1}}属性值。为什么不在1>}之前使用CollectionViewSource
对其进行排序?将其分配给LinQ
?:
CollectionViewSource
你可以直接刷新SomeCollection = new ObservableCollection(SomeCollection.OrderBy(i => i.Build));
,但它通常不是用户想要的,因为它会完全刷新...你可以尝试这样的事情:
CollectionViewSource
可以在Dr. WPF网站的ItemsControl: 'E' is for Editable Collection找到第三个选项。