我有一个带有绑定项源的数据网格。我已将datagrid的CanUserSortColumns属性设置为TRUE,而datagrid中的所有内部列也是如此,但用户仍然无法对列进行排序。
我有什么遗漏的吗?
答案 0 :(得分:3)
您是否明确为标头定义了DataTemplate
?如果是,则必须将列"SortMemberPath"
上的属性设置为要对列进行排序的CLR属性。这个链接可能对您有所帮助,看看它 -
答案 1 :(得分:1)
谢谢你们。那很有效。我只想补充一下。
这些列的类型必须实现非泛型IComparable
,如果您使用的是原始或.net类型,这通常不是问题。但是如果你有自己的类型,那么你将不得不添加它。
E.g。
/* this is my own type */
public struct Distance : ..., IComparable, IComparable<Distance>, ... {
...
public int CompareTo(object obj)
{
if (obj == null) { return 1; }
if (obj.GetType() != typeof(Distance)) { return 0; }
return CompareTo((Distance)obj);
}
public int CompareTo(Distance other) { return _meters.CompareTo(other._meters); }
}