2010-12-20 6 views
0

In .NET C# 4.0 mit .NET Chart-Steuerelement ich diesen Code haben ein Kreisdiagramm zu erzeugen:.NET Chart Datamanipulator

 chart.Series[0].ChartType = SeriesChartType.Pie; 
     foreach (Order order in orderCollection) { 
      // If I set point.LegendText = order.UserName, .Group will erase it 
      chart.Series[0].Points.AddXY(order.UserName, order.Total); 
     } 

     chart.DataManipulator.Sort(PointSortOrder.Ascending, "X", "Series1"); 
     chart.DataManipulator.Group("SUM", 1, IntervalType.Months, "Series1"); 

Dieses gut funktioniert, erzeugt es ein Kreisdiagramm mit den Top 10 der Benutzer zeigt ihre Gesamtauftragssumme an. Ich möchte den Legendentext der DataPoints auf die Eigenschaft order.UserName setzen. Das Problem ist, DataManipulator.Group überschreibt die Reihe DataPoints. Wenn ich also den Legendentext in die foreach-Schleife setze, werden sie nach dem Gruppenruf gelöscht.

Und nach dem Gruppenaufruf sehe ich keinen Weg, den richtigen Benutzernamen für einen DataPoint zu erhalten, um den Legendentext festzulegen.

Was ist der beste Ansatz für diese Situation?

Antwort

1

Als Lösung habe ich LINQ verwendet, um die Datenquelle zu gruppieren und die Verwendung des DataManipulators fallengelassen.