Можно ли в алфавитном порядке заказать серию в легенде диаграммы Оксиплота?

Я хотел бы заказать legend моего графика Оксиплота в alphabetical order, Это возможно в течение Oxyplot?

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

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

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

1 ответ

Решение

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

Там у вас есть 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);
Другие вопросы по тегам