我有一个具有以下结构的对象:
public class StockData
{
public string Name { get; set; }
public double Change { get; set; }
public DateTime LastUpdate { get; set; }
public WorkflowStatus Status { get; set; }
}
工作流状态枚举定义如下:
public enum WorkflowStatus
{
PendingCoverage,
PendingCompliance,
Approved,
Rejected
}
问题:我有一个将所有 StockData 绑定到它的网格 (wpf),并且我在状态字段上设置了一个分组。我希望这些组出现在网格中,因为它是按照 WorkflowStatus 枚举的顺序定义的。这工作得很好,数据按照枚举中定义的顺序分组,即第一组是 Pendingcoverage,最后一组是 Rejected。
现在我想删除这个枚举并引入一个对象图而不是枚举。这意味着将有一个名为 WorkflowStatus 的基类和 4 个名为 PendingCoverage、PendingCompliance、Approved 和 Rejected 的派生类。每个派生类都将覆盖 ToString 属性并返回适当的字符串。
现在,这行不通。由于某种原因,它无法确定哪个组应该先来,哪个组应该随后来。问题是我将如何在这种情况下实现 IComparable。我应该在 StockData 或每个单独的 WorkflowStatus 对象上实现 IComparable (或其他东西),是的,然后如何?另外,为什么这在枚举的情况下有效,而不是在对象的情况下?