【发布时间】:2012-03-22 13:31:41
【问题描述】:
我在WPF中使用了很长时间进行排序的一种技术是创建一个CollectionViewSource并指定SortDescriptions,例如
<Window.Resources>
<CollectionViewSource x:Key="testView">
<CollectionViewSource.SortDescriptions>
<cm:SortDescription PropertyName="FirstName" Direction="Descending"></cm:SortDescription>
<cm:SortDescription PropertyName="FamilyName"></cm:SortDescription>
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
这对于我抛出的所有内容都非常有效,但 DataGrid 除外。第一次似乎工作正常,但如果我更改数据,那么网格会终止排序。它甚至会杀死使用相同 CollectionViewSource 的其他控件。我在这里创建了一个示例项目
http://www.mikesdriveway.com/misc/GridSortIssue.zip
要测试此问题,请运行项目并单击“刷新数据”按钮。请注意,项目的顺序发生了变化。这只发生一次,再次测试停止并再次运行项目。现在从 DataGrid 中删除 ItemsSource 并再次运行该项目。这一次,当您单击“刷新数据”按钮时,没有任何反应,这意味着排序保持不变。不知何故,网格正在扼杀 CollectionViewSource 中的排序。这是一个错误吗?
干杯, 迈克尔
【问题讨论】:
标签: wpf xaml wpfdatagrid