Databind with Chart controls gives NotImplementedException

c#, charts

Solution

Are you using a C# iterator?

C# iterators do not implement the Reset function on the generated IEnumerator and will throw a NotImplementedException if it is called. It looks like the particular control requires that method to be present.

You will likely have to use a collection which supports Reset on it's iterator. The easiest way to achieve this is to use a `List<T>` to wrap your existing `IEnumerable<T>`

For example

List<ChartPoint> list = new List<ChartPoint>(points);
serie.Points.DataBind(list, "Xvalue", "Yvalue", "Tooltip=Tooltip,Url=Url");

Problem

I feed a Microsoft Chart control with a IEnumerable of my own class ChartPoint ``` public class ChartPoint { public double Xvalue { get; set; } public double Yvalue { get; set; } public string Url { get; set; } public string Tooltip { get; set; } } ``` then i tries to DataBind the IEnumerable< ChartPoint>: ``` serie.Points.DataBind(points, "Xvalue", "Yvalue", "Tooltip=Tooltip,Url=Url"); ``` but i then hits a NotImplementedException on that row: ``` System.Linq.Iterator`1.System.Collections.IEnumerator.Reset() +29 System.Web.UI.DataVisualization.Charting.DataPointCollection.DataBind(IEnumerable dataSource, String xField, String yFields, String otherFields) +313 ``` What am I doing wrong?

Original source