Можно ли упорядочить ряды в алфавитном порядке в легенде Oxyplot chart?


Я хотел бы упорядочить legend моей диаграммы Oxyplot в alphabetical order. Возможно ли это в пределах Oxyplot?

Вот мой текущий сюжет: Сюжет с легендой

Я хотел бы заказать legend моего chart. Я не буду заказывать способ, которым я строю данные в первую очередь, потому что это будет означать слишком много условий, и я хочу, чтобы график был как можно более общим. Я знаю, что это был бы вариант, но я бы предпочел не идти с этим методом.

Пожалуйста, дайте мне знать, если это так. возможно ли order alphabetically только элементы легенды в Oxyplot?
1 2

1 ответ:

Вы не можете изменить порядок de legend напрямую, но вы можете отсортировать ряды внутри модели, так что вы увидите legend в алфавитном порядке:

Там у вас есть 2 метода для сортировки:

Вариант 1, Простая сортировка пузырьков:

Series temp;
int length = plotModel.Series.Count;
for (i = 0; i < length; i++)
{
    for (int j = i + 1; j < length; j++)
    {
        if (string.Compare(plotModel.Series[i].Title, plotModel.Series[j].Title) > 0) //true if second string goes before first string in alphabetical order
        {
            temp = plotModel.Series[i];
            plotModel.Series[i] = plotModel.Series[j];
            plotModel.Series[j] = temp;
        }
    }
}

Вариант 2, Вспомогательный Список:

List<Series> sortedList = new List<Series>(plotModel.Series);
sortedList.Sort((x, y) => string.Compare(x.Title, y.Title));

plotModel.Series.Clear();
foreach(Series s in sortedList)
    plotModel.Series.Add(s);