1

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

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

4

2 回答 2

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();

请参阅此链接

编辑 以覆盖 WPF 数据网格的默认排序行为,请参阅此链接中的答案。

于 2013-03-08T11:46:17.807 回答
0

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

每列的 WPF DataGrid CustomSort

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

于 2013-10-28T14:51:34.930 回答