2011-08-18 59 views
1

我有以下代碼(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); 
     } 

回答

1

當網格組記錄時,首先對它們進行排序,然後根據組列中具有相同值的行創建組。所以,我傾向於認爲第一列是綁定到Categbory字段的。它的類型是什麼?我認爲網格不能比較這個字段的值,因此引發這個異常。

+0

是的,我在類別類中寫了CompareTo,現在可以工作。但不是我想要的。無論如何,這是其他問題。 – user348173