I am creating a BubbleSeries in a function within CS file. As a data source I use a List<Dictionary<string,string>> GridData
, Unfortunately my implementation throws an exception: No suitable axis is available for plotting the dependent value.
I am SL4 newbie and I can not figure out what could be a reson. Here is how I create and add BubbleSeries to Chart:
List<Dictionary<string,string>> GridData = getGridData();
var s1 = new BubbleSeries();
s1.DependentValueBinding = new Binding("[" + <key to numeric value in DataGrid> + "]");
s1.SizeValueBinding = new Binding("[" + <key to numeric value in DataGrid> + "]");
s1.IndependentValueBinding = new Binding("[" + <key to string value in DataGrid> + "]");
s1.ItemsSource = GridData;
s1.Title = "Chart";
// add BubbleSeries to Chart
ChartVis.Series.Add(s1);
Here is a full description of an error I got in runtime:
Webpage error details
User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E)
Timestamp: Mon, 20 Sep 2010 07:09:33 UTC
Message: Unhandled Error in Silverlight Application
Code: 4004
Category: ManagedRuntimeError
Message: System.InvalidOperationException: No suitable axis is available for plotting the dependent value.
at System.Windows.Controls.DataVisualization.Charting.BubbleSeries.<>c__DisplayClass6.<GetAxes>b__3()
at System.Windows.Controls.DataVisualization.Charting.DataPointSeriesWithAxes.GetAxes(DataPoint firstDataPoint, Func`2 independentAxisPredicate, Func`1 independentAxisFactory, Func`2 dependentAxisPredicate, Func`1 dependentAxisFactory)
at System.Windows.Controls.DataVisualization.Charting.BubbleSeries.GetAxes(DataPoint firstDataPoint)
at System.Windows.Controls.DataVisualization.Charting.DataPointSeriesWithAxes.GetAxes()
at System.Windows.Controls.DataVisualization.Charting.DataPointSeriesWithAxes.OnDataPointsChanged(IList`1 newDataPoints, IList`1 oldDataPoints)
at System.Windows.Controls.DataVisualization.Charting.DataPointSingleSeriesWithAxes.OnDataPointsChanged(IList`1 newDataPoints, IList`1 oldDataPoints)
at System.Windows.Controls.DataVisualization.Charting.DataPointSeries.LoadDataPoints(IEnumerable newItems, IEnumerable oldItems)
at System.Windows.Controls.DataVisualization.Charting.DataPointSeries.Refresh()
at System.Windows.Controls.DataVisualization.Charting.DataPointSeries.OnSizeChanged(Object sender, SizeChangedEventArgs e)
at System.Windows.FrameworkElement.OnSizeChanged(Object sender, SizeChangedEventArgs e)
at MS.Internal.JoltHelper.RaiseEvent(IntPtr target, UInt32 eventId, IntPtr coreEventArgs, UInt32 eventArgsTypeIndex)
Line: 56
Char: 13
Code: 0
URI: http://localhost:49402/MyTestPage.aspx
My chart implementation is:
<toolkit:Chart Title="Visaulization" Grid.Column="0" x:Name="ChartVis">
<toolkit:Chart.Series>
</toolkit:Chart.Series>
</toolkit:Chart>
UPDATE:
After changing the declaration of my dictionary to Dictionary<string,object>
, and putting numeric values as doubles. I got this error:
Message: Unhandled Error in Silverlight Application
Code: 4004
Category: ManagedRuntimeError
Message: System.InvalidOperationException: Assigned dependent axis cannot be used. This may be due to an unset Orientation property for the axis or a type mismatch between the values being plotted and those supported by the axis.
at System.Windows.Controls.DataVisualization.Charting.DataPointSeriesWithAxes.GetAxes(DataPoint firstDataPoint, Func`2 independentAxisPredicate, Func`1 independentAxisFactory, Func`2 dependentAxisPredicate, Func`1 dependentAxisFactory)
at System.Windows.Controls.DataVisualization.Charting.BubbleSeries.GetAxes(DataPoint firstDataPoint)
at System.Windows.Controls.DataVisualization.Charting.DataPointSeriesWithAxes.GetAxes()
at System.Windows.Controls.DataVisualization.Charting.DataPointSeriesWithAxes.OnDataPointsChanged(IList`1 newDataPoints, IList`1 oldDataPoints)
at System.Windows.Controls.DataVisualization.Charting.DataPointSingleSeriesWithAxes.OnDataPointsChanged(IList`1 newDataPoints, IList`1 oldDataPoints)
at System.Windows.Controls.DataVisualization.Charting.DataPointSeries.LoadDataPoints(IEnumerable newItems, IEnumerable oldItems)
at System.Windows.Controls.DataVisualization.Charting.DataPointSeries.Refresh()
at System.Windows.Controls.DataVisualization.Charting.DataPointSeries.OnSizeChanged(Object sender, SizeChangedEventArgs e)
at System.Windows.FrameworkElement.OnSizeChanged(Object sender, SizeChangedEventArgs e)
at MS.Internal.JoltHelper.RaiseEvent(IntPtr target, UInt32 eventId, IntPtr coreEventArgs, UInt32 eventArgsTypeIndex)