I updated my Silverlight 4 application with latest controls and my charts using Pie3DSeriesDefinition (tried 2d with same results) throwing this exception:
Stack Trace:
Object reference not set to an instance of an object.
Stack Trace:
at Telerik.Windows.Controls.Charting.DataBindingHelper.AssignMappingFieldTypes(QueryableCollectionView dataEngine, SeriesMapping seriesMapping) |
at Telerik.Windows.Controls.Charting.DataBindingHelper.ProcessNoGrouping(SeriesMapping seriesMapping, QueryableCollectionView dataEngine, Int32 samplingThreshold, ZoomScrollSettings zoomScrollSettings, ISeriesDefinition defaultSeriesDefinition, AxisRangeState axisXRangeState, Int32 seriesCount) |
at Telerik.Windows.Controls.Charting.DataBindingHelper.ProcessMapping(SeriesMapping seriesMapping, QueryableCollectionView dataEngine, Int32 samplingThreshold, ZoomScrollSettings zoomScrollSettings, ISeriesDefinition defaultSeriesDefinition, AxisRangeState axisXRangeState, Int32 seriesCount) |
at Telerik.Windows.Controls.Charting.DataBindingHelper.ProcessMappings(SeriesMappingCollection seriesMappings, QueryableCollectionView dataEngine, Int32 samplingThreshold, ZoomScrollSettings zoomScrollSettings, ISeriesDefinition defaultSeriesDefinition, AxisRangeState axisXRangeState) |
at Telerik.Windows.Controls.Charting.DataBindingHelper.GenerateDataSeries(Object originalData, SeriesMappingCollection seriesMappings, ISeriesDefinition defaultSeriesDefinition, ChartFilterDescriptorCollection globalFilterDescriptors, ChartSortDescriptorCollection globalSortDescriptors, SamplingSettings samplingSettings, ZoomScrollSettings zoomScrollSettings, AxisRangeState axisXRangeState) |
at Telerik.Windows.Controls.RadChart.GenerateDataSeries(Object originalData, SeriesMappingCollection seriesMappings, ChartArea chartArea) |
at Telerik.Windows.Controls.RadChart.GenerateDataSeries(Object originalData) |
at Telerik.Windows.Controls.RadChart.Rebind(Object originalData) |
at Telerik.Windows.Controls.RadChart.ItemsSourcePropertyChanged(DependencyObject target, DependencyPropertyChangedEventArgs args) |
at Telerik.Windows.PropertyMetadata.<>c__DisplayClass1.<Create>b__0(DependencyObject d, DependencyPropertyChangedEventArgs e) |
at System.Windows.DependencyObject.RaisePropertyChangeNotifications(DependencyProperty dp, Object oldValue, Object newValue) |
at System.Windows.DependencyObject.UpdateEffectiveValue(DependencyProperty property, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, ValueOperation operation) |
at System.Windows.DependencyObject.RefreshExpression(DependencyProperty dp) |
at System.Windows.Data.BindingExpression.SendDataToTarget() |
at System.Windows.Data.BindingExpression.SourcePropertyChanged(PropertyPathListener sender, PropertyPathChangedEventArgs args) |
at System.Windows.PropertyPathListener.RaisePropertyPathStepChanged(PropertyPathStep source) |
at System.Windows.PropertyAccessPathStep.RaisePropertyPathStepChanged(PropertyListener source) |
at System.Windows.CLRPropertyListener.SourcePropertyChanged(Object sender, PropertyChangedEventArgs args) |
at System.Windows.Data.WeakPropertyChangedListener.PropertyChangedCallback(Object sender, PropertyChangedEventArgs args) |
at System.ComponentModel.PropertyChangedEventHandler.Invoke(Object sender, PropertyChangedEventArgs e) |
at Gideon.Data.ViewModelBase.OnPropertyChanged(String propertyName) |
at Gideon.Models.MainViewModel.set_DirectionShippments(ObservableCollection`1 value) |
at Gideon.Models.MainViewModel.FillChartData() |
at Gideon.Models.MainViewModel.GetTransactionsComplete(LoadOperation`1 transactions) |
at Gideon.Models.MainViewModel.<FilterShippments>b__19(LoadOperation`1 o) |
at System.ServiceModel.DomainServices.Client.DomainContext.<>c__DisplayClass13`1.<Load>b__11(LoadOperation lo) |
at System.ServiceModel.DomainServices.Client.LoadOperation.<>c__DisplayClass4`1.<Create>b__0(LoadOperation`1 arg) |
at System.ServiceModel.DomainServices.Client.LoadOperation`1.InvokeCompleteAction() |
at System.ServiceModel.DomainServices.Client.OperationBase.Complete(Object result) |
at System.ServiceModel.DomainServices.Client.LoadOperation.Complete(DomainClientResult result) |
at System.ServiceModel.DomainServices.Client.DomainContext.CompleteLoad(IAsyncResult asyncResult) |
at System.ServiceModel.DomainServices.Client.DomainContext.<>c__DisplayClass1b.<Load>b__17(Object ) |
The code:
foreach (var c in directionShipmentsDictionary) |
{ |
directionShipments.Add(new DataPoint { YValue = c.Value }); |
} |
DirectionShipments is an ObservableCollection
C#:
SeriesMapping sm4 = new SeriesMapping(); |
sm4.ChartArea = this.directionShippments; |
sm4.SeriesDefinition = new Pie3DSeriesDefinition(); |
sm4.SeriesDefinition.ShowItemToolTips = true; |
sm4.SeriesDefinition.SeriesItemLabelStyle = App.Current.Resources["SeriesItemLabelStyle"] as Style; |
sm4.ItemMappings.Add(new ItemMapping("YValue", DataPointMember.YValue)); |
sm4.ItemMappings.Add(new ItemMapping("Label", DataPointMember.Label)); |
sm3.ItemMappings.Add(new ItemMapping("Tooltip", DataPointMember.Tooltip)); |
XAML:
<chart:RadChart x:Name="transChart3"ItemsSource="{Binding DirectionShippments}" Background="Transparent" BorderThickness="0" UseDefaultLayout="False" FontSize="28"> |
<charting:ChartArea Grid.Column="0" x:Name="directionShippments" FontSize="28" Foreground="Black"/> |
</chart:RadChart> |
I am not too sure on what to do. Frankly it is a bit annoying, because after each update something brakes :(