I am currently implementing grouping/aggregate function using RadChart. But I am doing mulitiple SeriesMapping at the same time. The legend is automatically generating labels however... I need a way to modify the labels so that it could be used to identify which SeriesMapping and grouping at the same time.
Example:
Grouped by "Title"
Mapping of 3 datasets
Legend should look like:
Title 1 DataSet 1
Title 2 DataSet 1
Title 1 DataSet 2
Title 2 DataSet 2
Title 1 DataSet 3
Title 2 DataSet 3
But the smart legend is dong just this:
Title 1
Title 2
Title 1
Title 2
Title 1
Title 2
public void BindChart(string aggregateFunction, GroupDescriptorCollection gridGroupDescriptors, object gridItemsSource, string[] dataSets)
{
RadChart1.DefaultView.ChartArea.AdditionalYAxes.Clear();
RadChart1.ItemsSource = Translate(gridItemsSource);
RadChart1.SeriesMappings.Clear();
ChartAggregateFunction aggFunct = (ChartAggregateFunction)Enum.Parse(typeof(ChartAggregateFunction), aggregateFunction, true);
foreach (string dataSet in dataSets)
{
SeriesMapping mapping = new SeriesMapping();
mapping.ItemMappings.Clear();
mapping.ItemMappings.Add(
new ItemMapping(dataSet, DataPointMember.YValue, aggFunct));
mapping.SeriesDefinition =
new BarSeriesDefinition();
#region
Assign Axis Y
//if (RadChart1.SeriesMappings.Count > 1)
//{
// RadChart1.DefaultView.ChartArea.AdditionalYAxes.Add(GenerateYAxis(dataSet));
// mapping.SeriesDefinition.AxisName = dataSet;
//}
#endregion
ChartGroupDescriptorCollection chartGroupDescriptors = new ChartGroupDescriptorCollection();
foreach (GroupDescriptor descriptor in gridGroupDescriptors)
mapping.GroupingSettings.GroupDescriptors.Add(
new ChartGroupDescriptor(descriptor.Member, descriptor.MemberType));
GroupDescriptor lastGroupDescriptor;
if (gridGroupDescriptors.Count > 0 && aggregateFunction.ToLower() != "none")
{
lastGroupDescriptor = gridGroupDescriptors[gridGroupDescriptors.Count - 1];
mapping.ItemMappings.Add(
new ItemMapping(lastGroupDescriptor.Member, DataPointMember.XCategory));
}
RadChart1.SeriesMappings.Add(mapping);
}
}