У меня есть объект, имеющий следующую структуру:Перечисление & IComparable
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
}
Проблема: У меня есть сетки (WPF), который связывается все StockData, и я установил группировку в поле «Статус». Я хочу, чтобы группы появлялись в сетке, как это определено в порядке перечисления WorkflowStatus. Это работает абсолютно нормально, и данные группируются в порядке, так как оно определено внутри перечисления. Первая группа - Pendingcoverage, а последняя - Отклонено.
Теперь я хочу удалить это перечисление и ввести граф объектов вместо enum..which означает, что будет базовый класс WorkflowStatus и 4 производный класс под названием PendingCoverage, PendingCompliance, Approved and Rejected. Каждый производный класс будет переопределять свойство ToString и возвращать соответствующую строку.
Теперь это не работает. По какой-то причине он не может установить, какая группа должна быть первой, и которая должна появиться впоследствии. Вопрос в том, как я буду реализовывать IComparable в этом сценарии. Должен ли я реализовать IComparable (или что-то еще) в StockData или на каждом отдельном объекте WorkflowStatus и да, то как? Также почему это работает в случае перечисления, а не в случае объекта?
Что вы имеете в виду под "это не в состоянии определить, какая группа должна прийти первым и который должен прийти впоследствии? Что такое «это» в этом предложении? Кроме того, что было не так с системой enum или другим способом, какую выгоду вы получаете от использования отдельных классов? – Sheridan
«Это» означает сетку wpf и логику группировки сетки. Причиной перехода в отдельный класс является управление состоянием в соответствующих классах. – Mike