如何向特定列添加特殊排序方法以允许不同类型的排序(例如在120.5.1.12和120.5.1.110之间排序120.5.1.50而不是120.5.1.110是最低值。
另外,如何允许自定义类型的点击标题排序将其绑定到模板列。这甚至可能吗?
答案 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解决方案 - 如果您想深入研究代码隐藏的世界,可能有更简单的方法。