当CanUserSortColumns =“False”时,如何让DataGrid列显示鼠标悬停和排序方向?

时间:2011-05-06 08:45:40

标签: .net wpf .net-4.0 datagrid

我想为WPF DataGrid提供自己的排序行为实现,因为我使用的是分页数据模型。我的分页行为运行良好,但CanUserSortColumns="True"的默认排序行为导致当前页面排序,但我想捕获它并自行排序。

我认为我可以通过监听列标题上的点击事件并进行适当的排序来提供排序行为,但是当CanUserSortColumns="False"列标题不再响应鼠标交互时,我可以提供排序行为不显示排序方向指示器。

我认为情况确实如此,但我想知道如何在不必编写看起来像原始模板的整个模板的情况下恢复样式。

2 个答案:

答案 0 :(得分:1)

抱歉,我不记得是否可以获得为按钮或任何控件设置效果的特定样式。它们是这些控件的默认样式/模板,可能不可用。我确实记得模板只有在显示后才可用,除非明确设置。

但是,如果你的整个目标是实现自定义排序,那么你不能只处理Sorting事件吗?您甚至可以获得引发排序的Column的引用,并在排序前获取SortDirectionnull - > Ascending - > {{1} } - >)。然后,您可以根据需要对源进行排序。

答案 1 :(得分:0)

您可以将CanUserSortColumns设置为true,然后处理PreviewLeftMouseButton,执行自定义操作,并将事件设置为处理,以便它不会进入默认排序逻辑吗?