【问题标题】:Wpf data grid custom column sortingWpf数据网格自定义列排序
【发布时间】:2013-03-08 11:14:45
【问题描述】:

如何向特定列添加特殊排序方法以允许不同类型的排序(例如在 120.5.1.12 和 120.5.1.110 之间排序 120.5.1.50,而不是让 120.5.1.110 成为最小值。

另外,我如何允许自定义类型的单击标题排序将其绑定到模板列。这甚至可能吗?

【问题讨论】:

标签: wpf sorting


【解决方案1】:

您可以实现 IComparer 并定义自己的比较逻辑。

public class MyComparer : IComparer<Object>
{

    public int Compare(Object stringA, Object stringB)
    {
         // Your logic here
    }
}

在您可以将 LINQ OrderBy 方法与您的自定义比较器一起使用之后。

items = items.OrderBy(x => property, comparer).ToList();

请参阅此link

编辑 要覆盖 WPF Datagrid 的默认排序行为,请参阅此 link 中的答案。

【讨论】:

  • 问题不在于如何实现排序,而是如何在单击列标题时为 wpd 数据网格添加排序行为
  • 公平地说,我已经用链接更新了我的答案。查看接受的答案
【解决方案2】:

如果您想在单击列标题后保持自定义排序顺序,您可以使用附加行为。我想出了这个似乎运作良好的解决方案:

WPF DataGrid CustomSort for each Column

这是一个 MVVM 解决方案 - 如果您想深入研究代码隐藏的世界,可能有更简单的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 2013-08-11
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多