Hi Alan,
The most obvious problem with that code is that the index is incorrect:
int i = pieSeries.GetDataPointCount()
initializes i with an index which is outside the values bounds - it should be:
int i = pieSeries.GetDataPointCount() - 1
We tested with the following code:
nChartControl1.Panels.Clear();
NPieChart pieChart = new NPieChart();
nChartControl1.Panels.Add(pieChart);
NPieSeries pieSeries = new NPieSeries();
pieChart.Series.Add(pieSeries);
for (int i = 0; i < 20; i++)
{
pieSeries.Values.Add(i);
}
double dLargeSliceValue = 0.0;
NChartPalette chartPalette = new NChartPalette(ChartPredefinedPalette.Autumn);
List<Color> colorList = chartPalette.SeriesColors;
for (int i = pieSeries.GetDataPointCount() - 1; i >= 0; i--)
{
if (i > 9)
{ //group
//add to value
dLargeSliceValue = dLargeSliceValue + (double)pieSeries.Values[i]; /* this does not work */
//remove initial slice
pieSeries.RemoveDataPointAt(i);
}
else
{ //assign color
pieSeries.FillStyles[i] = new NColorFillStyle(colorList[i % colorList.Count]);
}
}
// add a large slice
NDataPoint dp = new NDataPoint(dLargeSliceValue, "Grouped");
dp[DataPointValue.PieDetachment] = 1;
pieSeries.AddDataPoint(dp);
and it was working properly. Let us know if you meet any problems or have any questions.
Best Regards,
Nevron Support Team