分组问题

本文关键字:问题 | 更新日期: 2023-09-27 18:05:52

我有以下代码(DevExpress组件):

dgvDisplayDictionary.DataSource = DataAccessor.GetAllRecords();
gvDisplay.BeginSort();
gvDisplay.ClearGrouping();
gvDisplay.Columns[0].GroupInterval = ColumnGroupInterval.Alphabetical;
gvDisplay.Columns[0].GroupIndex = 0;
gvDisplay.EndSort();

我得到以下错误:

At least one object must implement IComparable.
我的类绑定到gvDisplay:
public class NormDocCost:AbstractDisplayDictionary.
    {            
        public virtual Category Category { get; set; }            
        public virtual DocumentFormat DocumentFormat { get; set; }            
        public virtual Translate Translate { get; set; }
        public virtual int NdcId { get; set; }           
        public virtual int PageStart { get; set; }         
        public virtual int PageEnd { get; set; }          
        public virtual double Cost { get; set; }            
        public virtual DateTime? DateFrom { get; set; }            
        public virtual DateTime? DateTo { get; set; }
   }

我试着写这段代码,但不工作:

public int CompareTo(object other)
        {
            var obj = (NormDocCost)other;
            if(obj.Category.Id == Category.Id)
            {
                return this.Category.NameRu.CompareTo(obj.Category.NameRu);
            }
            return obj.Category.Id.CompareTo(Category.Id);
        }

分组问题

当网格对记录进行分组时,它首先对它们进行排序,然后仅根据组列中具有相同值的行创建组。所以,我倾向于认为第一列绑定到category字段。它是什么类型的?我认为网格无法比较该字段的值,因此引发此异常。