Wpf数据网格自定义列排序

时间:2013-03-08 11:14:45

标签: wpf sorting

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

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

2 个答案:

答案 0 :(得分: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中的答案。

答案 1 :(得分:0)

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

WPF DataGrid CustomSort for each Column

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