Можно ли в алфавитном порядке заказать серию в легенде диаграммы Оксиплота?
Я хотел бы заказать 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);