【问题标题】:WPF DataGrid prevent automatic reordering of sorted viewWPF DataGrid 阻止排序视图的自动重新排序
【发布时间】:2018-10-25 05:42:49
【问题描述】:

我有一个绑定到项目列表的数据网格。我希望能够通过单击列标题对网格进行排序。网格排序后,我想通过拖动重新排序来进一步组织它。我的问题是,每当有排序时,我都无法拖动重新排序项目(列表在放置后自动重新排序)。此外,一旦项目被编辑,网格就会重新排序。我已经尝试在排序事件中拦截它,但是当“自动排序”发生时,该事件不会被触发,只有在实际排序应用于视图时才会触发。

我尝试将排序视图复制到新列表,然后将 itemsource 设置为排序列表。这种方法的问题是排序方向没有切换。

我已经鬼混了几个小时,并决定我一定错过了一些明显的东西。

【问题讨论】:

标签: c# wpf sorting wpfdatagrid


【解决方案1】:

您将需要实现与排序相关的所有内容。

  1. 您需要一个用于绑定到排序方法的数据网格标题的命令。并且标题的文本绑定到当前列排序的方向

  2. 您需要一个绑定到数据网格项目源的排序集合

  3. 您需要一个包含所有可点击列的枚举,以便在用户点击列时调用排序方法

  4. 您需要使用以下参数实现排序方法:bool sortDirectionSortByColumnEnum column。这会更新已排序的集合,从而更改数据网格。

之后,您可以通过更改已排序集合中的索引来重新排序项目。

【讨论】:

    猜你喜欢
    • 2010-11-29
    • 2012-05-01
    • 2010-11-17
    • 1970-01-01
    • 2019-06-09
    • 2011-01-22
    • 1970-01-01
    • 2013-12-31
    • 2011-09-04
    相关资源
    最近更新 更多