У меня есть диаграмма типа Donut из Microsoft Chart Controls (в пространстве имен System.Web.UI.DataVisualization.Charting).
Данные, которые я привязываю к серии моего графика, имеют тип Dictionary<string, int>
, где метка является ключом словаря, а значение является свойством Value
. Я хочу, чтобы мои метки на круговой диаграмме выглядели так: Some label (4)
, где «Некоторая метка» является ключом записи в словаре, а 4 - значением.
Я пробовал различные комбинации IsValueShownAsLabel
и LabelFormat
, но это не помогает, так как показывает только значение.
Я придумал следующий код, который делает то, что я хочу, но, честно говоря, последние три строки (которые устанавливают метки) пугают меня!
Dictionary<string, int> myDictionary = GetMyDataForTheChart();
var mySeries = Chart1.Series.Add("MySeries");
mySeries.Points.DataBind(myDictionary, "Key", "Value", null);
int i = 0;
foreach (var p in mySeries.Points)
p.Label = myDictionary.ElementAt(i++).Key + " (" + p.YValues[0].ToString("0") + ")";
Есть ли лучший способ?