【问题标题】:CanUserSortColumns in datagrid doesn't make effect?数据网格中的 CanUserSortColumns 不起作用?
【发布时间】:2011-12-15 10:51:08
【问题描述】:

我有一个带有绑定项目源的数据网格。我已将 datagrid 的 CanUserSortColumns 属性设置为 TRUE,对 datagrid 中的所有内部列也是如此,但用户仍然无法对列进行排序。

有什么我错过了吗?

【问题讨论】:

  • 向我们展示您的 xaml 绑定和数据源类型

标签: wpf sorting datagrid


【解决方案1】:

您是否为您的标头明确定义DataTemplate?如果是的话,您必须将列 "SortMemberPath" 上的属性设置为您想要对列进行排序的 CLR 属性。此链接可能对您有所帮助,请查看 -

WPF4 Datagrid doesn't sort on column headers

【讨论】:

    【解决方案2】:

    谢谢各位。那行得通。我只想补充。

    这些列的类型必须实现非泛型IComparable,如果您使用原始类型或.net 类型,这通常不是问题。但是,如果您有自己的类型,则必须添加它。

    例如

    /* 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); }
    }
    

    【讨论】:

      猜你喜欢
      • 2010-11-02
      • 1970-01-01
      • 2019-12-24
      • 2018-03-07
      • 2016-05-05
      • 2012-02-15
      • 2012-01-28
      • 1970-01-01
      • 2020-12-13
      相关资源
      最近更新 更多