Telerik WPF Легендарный вопрос поставлен в тупик - PullRequest
1 голос
/ 28 апреля 2011

Мне нужно генерировать графики на лету, и только когда я получу ответ, я буду знать, какой тип графика генерировать.

Я пытался около часа и не могу понять. Что я делаю неправильно? Легенда показывает заголовок, но не показывает метку легенды, которая была связана с каждой точкой данных. Почему?

Я искал несколько часов и взял там дословный образец, и все же легенда не будет отображать LegendLabel. Я начал с пирога, так как думал, что он будет самым легким.

Чего мне не хватает?

var chartArea = new ChartArea();
 chartArea.LegendName = "test";

 var pieSeries = new DataSeries
 {
     Definition = new PieSeriesDefinition
     {
         InteractivitySettings =
             {HoverScope = InteractivityScope.None,
              SelectionScope = InteractivityScope.Item,
               SelectionMode = ChartSelectionMode.Single
              }
     }
 };


pieSeries.Definition.ItemLabelFormat = "p";
pieSeries.Add( new DataPoint() { YValue = 0.215208267, LegendLabel = "Toyota" } );
pieSeries.Add( new DataPoint() { YValue = 0.192960612, LegendLabel = "General Motors"     } );
pieSeries.Add( new DataPoint() { YValue = 0.151830229, LegendLabel = "Volkswagen" } );
pieSeries.Add( new DataPoint() { YValue = 0.125964366, LegendLabel = "Ford" } );
pieSeries.Add( new DataPoint() { YValue = 0.091152353, LegendLabel = "Honda" } );
pieSeries.Add( new DataPoint() { YValue = 0.079093251, LegendLabel = "Nissan" } );
pieSeries.Add( new DataPoint() { YValue = 0.079093251, LegendLabel = "PSA" } );
pieSeries.Add( new DataPoint() { YValue = 0.064697675, LegendLabel = "Hyundai" } );

chartArea.DataSeries.Add(pieSeries);
RadChart1.DefaultView.ChartLegend.UseAutoGeneratedItems = true;
RadChart1.DefaultView.ChartArea = chartArea;
RadChart1.DefaultView.ChartLegend.Header = "Legend test";

1 Ответ

0 голосов
/ 04 мая 2011

Я не создавал DataPoints индивидуально ранее.Однако вот код, который я использую для назначения информации из DataView моей круговой диаграмме.Это прекрасно работает для меня:

//Assigns the DataView to the grid
SeriesMapping mySeries = new SeriesMapping();
mySeries.SeriesDefinition = new PieSeriesDefinition();
mySeries.SeriesDefinition.Appearance.StrokeThickness = 2;
mySeries.ItemMappings.Add(new ItemMapping("Value", DataPointMember.YValue));
mySeries.ItemMappings.Add(new ItemMapping("Manufacturer", DataPointMember.LegendLabel));
pieChart.SeriesMappings.Add(mySeries);

pieChart.ItemsSource = myPieChartView;

Различия, которые я вижу здесь, в том, что вы назначаете информацию для DataSeries вместо SeriesMappings.Может быть, это вызывает проблему.

...