基于单击列标题在WPF中对数据网格进行排序
Posted
技术标签:
【中文标题】基于单击列标题在WPF中对数据网格进行排序【英文标题】:Sorting datagrid in WPF based on click of column header 【发布时间】:2016-10-12 23:13:11 【问题描述】:我正在使用绑定到可观察集合的数据网格。网格分为页面,每页包含 50 条记录。最初,只有前 3 个页面加载,然后在用户滚动剩余页面时开始加载数据。
问题是当我点击列标题对数据进行排序时,即使有前2页的数据,也只排序第一页的数据。当我再次单击列标题时,所有 100 行,即两个页面的数据都被排序,而不仅仅是第一页。 谢谢!
【问题讨论】:
【参考方案1】:这就是我在我的应用程序中完成 DataGrid 列标题排序的方式-
<dgCP:DataGridTemplateColumn SortMemberPath="CompleteDate" Header="Complete Date" CanUserSort="true">
<dgCP:DataGridTemplateColumn.CellTemplate >
<DataTemplate>
<TextBlock>
<TextBlock.Text>
<Binding Path="CompleteDate" StringFormat="0:MM/dd/yyyy"/>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</dgCP:DataGridTemplateColumn.CellTemplate>
</dgCP:DataGridTemplateColumn>
看看这是否有帮助。
【讨论】:
我已经尝试过了,但这并不能解决我的问题。数据网格对所有行进行排序,直到我滚动到网格末尾。也许问题是因为将“EnableRowVirtualization”设置为 true。如果此属性设置为 false,则加载行的性能会受到影响,因此我只能将其设置为 true,但排序不起作用。有没有其他办法,请指教。以上是关于基于单击列标题在WPF中对数据网格进行排序的主要内容,如果未能解决你的问题,请参考以下文章